[clang-tools-extra] 7d644e1 - [C11/C2x] Change the behavior of the implicit function declaration warning

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Wed Apr 20 08:30:28 PDT 2022


Author: Aaron Ballman
Date: 2022-04-20T11:30:12-04:00
New Revision: 7d644e1215b376ec5e915df9ea2eeb56e2d94626

URL: https://github.com/llvm/llvm-project/commit/7d644e1215b376ec5e915df9ea2eeb56e2d94626
DIFF: https://github.com/llvm/llvm-project/commit/7d644e1215b376ec5e915df9ea2eeb56e2d94626.diff

LOG: [C11/C2x] Change the behavior of the implicit function declaration warning

C89 had a questionable feature where the compiler would implicitly
declare a function that the user called but was never previously
declared. The resulting function would be globally declared as
extern int func(); -- a function without a prototype which accepts zero
or more arguments.

C99 removed support for this questionable feature due to severe
security concerns. However, there was no deprecation period; C89 had
the feature, C99 didn't. So Clang (and GCC) both supported the
functionality as an extension in C99 and later modes.

C2x no longer supports that function signature as it now requires all
functions to have a prototype, and given the known security issues with
the feature, continuing to support it as an extension is not tenable.

This patch changes the diagnostic behavior for the
-Wimplicit-function-declaration warning group depending on the language
mode in effect. We continue to warn by default in C89 mode (due to the
feature being dangerous to use). However, because this feature will not
be supported in C2x mode, we've diagnosed it as being invalid for so
long, the security concerns with the feature, and the trivial
workaround for users (declare the function), we now default the
extension warning to an error in C99-C17 mode. This still gives users
an easy workaround if they are extensively using the extension in those
modes (they can disable the warning or use -Wno-error to downgrade the
error), but the new diagnostic makes it more clear that this feature is
not supported and should be avoided. In C2x mode, we no longer allow an
implicit function to be defined and treat the situation the same as any
other lookup failure.

Differential Revision: https://reviews.llvm.org/D122983

Added: 
    

Modified: 
    clang-tools-extra/clangd/IncludeFixer.cpp
    clang-tools-extra/clangd/ParsedAST.cpp
    clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
    clang/docs/ReleaseNotes.rst
    clang/include/clang/Basic/DiagnosticSemaKinds.td
    clang/lib/Sema/SemaDecl.cpp
    clang/lib/Sema/SemaExpr.cpp
    clang/lib/Sema/SemaLookup.cpp
    clang/test/ARCMT/objcmt-arc-cf-annotations.m
    clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
    clang/test/Analysis/OSAtomic_mac.c
    clang/test/Analysis/ObjCProperties.m
    clang/test/Analysis/PR49642.c
    clang/test/Analysis/dead-stores.c
    clang/test/Analysis/diagnostics/no-store-func-path-notes.c
    clang/test/Analysis/exercise-ps.c
    clang/test/Analysis/malloc-three-arg.c
    clang/test/Analysis/misc-ps-region-store.m
    clang/test/Analysis/novoidtypecrash.c
    clang/test/Analysis/plist-macros-with-expansion.c
    clang/test/CodeGen/2002-07-14-MiscTests3.c
    clang/test/CodeGen/2002-07-31-SubregFailure.c
    clang/test/CodeGen/2003-08-18-SigSetJmp.c
    clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c
    clang/test/CodeGen/2005-01-02-ConstantInits.c
    clang/test/CodeGen/2005-01-02-VAArgError-ICE.c
    clang/test/CodeGen/2005-02-20-AggregateSAVEEXPR.c
    clang/test/CodeGen/2006-01-13-StackSave.c
    clang/test/CodeGen/2006-03-03-MissingInitializer.c
    clang/test/CodeGen/2007-09-27-ComplexIntCompare.c
    clang/test/CodeGen/2008-05-12-TempUsedBeforeDef.c
    clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c
    clang/test/CodeGen/2008-08-19-cast-of-typedef.c
    clang/test/CodeGen/2008-10-13-FrontendCrash.c
    clang/test/CodeGen/2009-01-05-BlockInlining.c
    clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
    clang/test/CodeGen/X86/bmi2-builtins.c
    clang/test/CodeGen/aarch64-mops.c
    clang/test/CodeGen/aarch64-neon-sm4-sm3.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c
    clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c
    clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c
    clang/test/CodeGen/arm-microsoft-intrinsics.c
    clang/test/CodeGen/arm64-microsoft-intrinsics.c
    clang/test/CodeGen/arm_acle.c
    clang/test/CodeGen/attribute_constructor.c
    clang/test/CodeGen/bounds-checking.c
    clang/test/CodeGen/builtin-attributes.c
    clang/test/CodeGen/builtins-arm-microsoft.c
    clang/test/CodeGen/builtins-arm-msvc-compat-only.c
    clang/test/CodeGen/builtins-x86.c
    clang/test/CodeGen/builtins.c
    clang/test/CodeGen/cast-emit.c
    clang/test/CodeGen/complex-libcalls-2.c
    clang/test/CodeGen/complex-libcalls.c
    clang/test/CodeGen/conditional.c
    clang/test/CodeGen/debug-info-block-vars.c
    clang/test/CodeGen/debug-info-crash.c
    clang/test/CodeGen/decl.c
    clang/test/CodeGen/init-with-member-expr.c
    clang/test/CodeGen/libcalls.c
    clang/test/CodeGen/mandel.c
    clang/test/CodeGen/math-libcalls.c
    clang/test/CodeGen/misaligned-param.c
    clang/test/CodeGen/ms-intrinsics-other.c
    clang/test/CodeGen/ms-setjmp.c
    clang/test/CodeGen/neon-crypto.c
    clang/test/CodeGen/shared-string-literals.c
    clang/test/CodeGen/struct-comma.c
    clang/test/CodeGen/variable-array.c
    clang/test/CodeGen/writable-strings.c
    clang/test/CodeGenObjC/builtins.m
    clang/test/CodeGenObjC/implicit-objc_msgSend.m
    clang/test/CodeGenObjC/property-complex.m
    clang/test/Driver/implicit-function-as-error.c
    clang/test/Frontend/warning-mapping-2.c
    clang/test/Headers/arm-cmse-header-ns.c
    clang/test/Headers/hexagon-audio-headers.c
    clang/test/Import/objc-arc/test-cleanup-object.m
    clang/test/Modules/config_macros.m
    clang/test/Modules/diagnose-missing-import.m
    clang/test/Modules/modulemap-locations.m
    clang/test/OpenMP/declare_mapper_messages.c
    clang/test/PCH/chain-macro-override.c
    clang/test/Rewriter/finally.m
    clang/test/Rewriter/rewrite-foreach-2.m
    clang/test/Rewriter/rewrite-try-catch.m
    clang/test/Sema/__try.c
    clang/test/Sema/aarch64-tme-errors.c
    clang/test/Sema/arm-no-fp16.c
    clang/test/Sema/bitfield.c
    clang/test/Sema/block-return.c
    clang/test/Sema/builtin-setjmp.c
    clang/test/Sema/builtins.c
    clang/test/Sema/cxx-as-c.c
    clang/test/Sema/implicit-builtin-decl.c
    clang/test/Sema/implicit-decl.c
    clang/test/Sema/implicit-intel-builtin-decl.c
    clang/test/Sema/implicit-ms-builtin-decl.c
    clang/test/Sema/typo-correction.c
    clang/test/Sema/varargs.c
    clang/test/Sema/vla.c
    clang/test/Sema/warn-strict-prototypes.c
    clang/test/SemaObjC/at-defs.m
    clang/test/SemaObjC/builtin_objc_lib_functions.m
    clang/test/SemaObjC/builtin_objc_nslog.m
    clang/test/SemaObjC/ivar-lookup-resolution-builtin.m
    clang/test/SemaOpenCL/arm-integer-dot-product.cl
    clang/test/SemaOpenCL/clang-builtin-version.cl
    clang/test/SemaOpenCL/to_addr_builtin.cl
    clang/test/VFS/module_missing_vfs.m
    compiler-rt/test/dfsan/mmap_at_init.c
    compiler-rt/test/profile/Posix/gcov-shared-flush.c
    compiler-rt/test/safestack/overflow.c
    compiler-rt/test/safestack/pthread-cleanup.c

Removed: 
    


################################################################################
diff  --git a/clang-tools-extra/clangd/IncludeFixer.cpp b/clang-tools-extra/clangd/IncludeFixer.cpp
index 6f527a48a9c0e..69ec27a024e1f 100644
--- a/clang-tools-extra/clangd/IncludeFixer.cpp
+++ b/clang-tools-extra/clangd/IncludeFixer.cpp
@@ -197,7 +197,7 @@ std::vector<Fix> IncludeFixer::fix(DiagnosticsEngine::Level DiagLevel,
   case diag::err_no_member_template:
   case diag::err_no_member_template_suggest:
   case diag::warn_implicit_function_decl:
-  case diag::ext_implicit_function_decl:
+  case diag::ext_implicit_function_decl_c99:
   case diag::err_opencl_implicit_function_decl:
     dlog("Unresolved name at {0}, last typo was {1}",
          Info.getLocation().printToString(Info.getSourceManager()),

diff  --git a/clang-tools-extra/clangd/ParsedAST.cpp b/clang-tools-extra/clangd/ParsedAST.cpp
index f6ccfed3e0e5c..ef744d1f893b0 100644
--- a/clang-tools-extra/clangd/ParsedAST.cpp
+++ b/clang-tools-extra/clangd/ParsedAST.cpp
@@ -428,7 +428,8 @@ ParsedAST::build(llvm::StringRef Filename, const ParseInputs &Inputs,
     // this is an error. (The actual typo correction is nice too).
     // We restore the original severity in the level adjuster.
     // FIXME: It would be better to have a real API for this, but what?
-    for (auto ID : {diag::ext_implicit_function_decl,
+    for (auto ID : {diag::ext_implicit_function_decl_c99,
+                    diag::ext_implicit_lib_function_decl_c99,
                     diag::warn_implicit_function_decl}) {
       OverriddenSeverity.try_emplace(
           ID, Clang->getDiagnostics().getDiagnosticLevel(ID, SourceLocation()));

diff  --git a/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp b/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
index 8e70759802fcd..c866a0f2ba5c1 100644
--- a/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
+++ b/clang-tools-extra/clangd/unittests/DiagnosticsTests.cpp
@@ -1409,7 +1409,7 @@ TEST(IncludeFixerTest, NoCrashOnTemplateInstantiations) {
 TEST(IncludeFixerTest, HeaderNamedInDiag) {
   Annotations Test(R"cpp(
     $insert[[]]int main() {
-      [[printf]]("");
+      [[printf]](""); // error-ok
     }
   )cpp");
   auto TU = TestTU::withCode(Test.code());
@@ -1420,16 +1420,19 @@ TEST(IncludeFixerTest, HeaderNamedInDiag) {
   EXPECT_THAT(
       *TU.build().getDiagnostics(),
       ElementsAre(AllOf(
-          Diag(Test.range(), "implicitly declaring library function 'printf' "
-                             "with type 'int (const char *, ...)'"),
+          Diag(Test.range(), "call to undeclared library function 'printf' "
+                             "with type 'int (const char *, ...)'; ISO C99 "
+                             "and later do not support implicit function "
+                             "declarations"),
           withFix(Fix(Test.range("insert"), "#include <stdio.h>\n",
                       "Include <stdio.h> for symbol printf")))));
 }
 
 TEST(IncludeFixerTest, CImplicitFunctionDecl) {
-  Annotations Test("void x() { [[foo]](); }");
+  Annotations Test("void x() { [[foo]](); /* error-ok */ }");
   auto TU = TestTU::withCode(Test.code());
   TU.Filename = "test.c";
+  TU.ExtraArgs.push_back("-std=c99");
 
   Symbol Sym = func("foo");
   Sym.Flags |= Symbol::IndexedForCodeCompletion;
@@ -1446,7 +1449,8 @@ TEST(IncludeFixerTest, CImplicitFunctionDecl) {
       *TU.build().getDiagnostics(),
       ElementsAre(AllOf(
           Diag(Test.range(),
-               "implicit declaration of function 'foo' is invalid in C99"),
+               "call to undeclared function 'foo'; ISO C99 and later do not "
+               "support implicit function declarations"),
           withFix(Fix(Range{}, "#include \"foo.h\"\n",
                       "Include \"foo.h\" for symbol foo")))));
 }

diff  --git a/clang/docs/ReleaseNotes.rst b/clang/docs/ReleaseNotes.rst
index 4d175bd2daa0d..fb81e9db5691e 100644
--- a/clang/docs/ReleaseNotes.rst
+++ b/clang/docs/ReleaseNotes.rst
@@ -156,6 +156,12 @@ Improvements to Clang's diagnostics
   without a prototype and with no arguments is an invalid redeclaration of a
   function with a prototype. e.g., ``void f(int); void f() {}`` is now properly
   diagnosed.
+- The ``-Wimplicit-function-declaration`` warning diagnostic now defaults to
+  an error in C99 and later. Prior to C2x, it may be downgraded to a warning
+  with ``-Wno-error=implicit-function-declaration``, or disabled entirely with
+  ``-Wno-implicit-function-declaration``. As of C2x, support for implicit
+  function declarations has been removed, and the warning options will have no
+  effect.
 
 - ``-Wmisexpect`` warns when the branch weights collected during profiling
   conflict with those added by ``llvm.expect``.
@@ -230,6 +236,9 @@ C2x Feature Support
 - Implemented the `*_WIDTH` macros to complete support for
   `WG14 N2412 Two's complement sign representation for C2x <https://www9.open-std.org/jtc1/sc22/wg14/www/docs/n2412.pdf>`_.
 - Implemented `WG14 N2418 Adding the u8 character prefix <http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2418.pdf>`_.
+- Removed support for implicit function declarations. This was a C89 feature
+  that was removed in C99, but cannot be supported in C2x because it requires
+  support for functions without prototypes, which no longer exist in C2x.
 
 C++ Language Changes in Clang
 -----------------------------

diff  --git a/clang/include/clang/Basic/DiagnosticSemaKinds.td b/clang/include/clang/Basic/DiagnosticSemaKinds.td
index f71f576f9ff47..4f0f0ec3b655d 100644
--- a/clang/include/clang/Basic/DiagnosticSemaKinds.td
+++ b/clang/include/clang/Basic/DiagnosticSemaKinds.td
@@ -417,9 +417,9 @@ def warn_return_value_udt_incomplete: Warning<
 def warn_implicit_function_decl : Warning<
   "implicit declaration of function %0">,
   InGroup<ImplicitFunctionDeclare>, DefaultIgnore;
-def ext_implicit_function_decl : ExtWarn<
-  "implicit declaration of function %0 is invalid in C99">,
-  InGroup<ImplicitFunctionDeclare>;
+def ext_implicit_function_decl_c99 : ExtWarn<
+  "call to undeclared function %0; ISO C99 and later do not support implicit "
+  "function declarations">, InGroup<ImplicitFunctionDeclare>, DefaultError;
 def note_function_suggestion : Note<"did you mean %0?">;
 
 def err_ellipsis_first_param : Error<
@@ -698,6 +698,10 @@ def note_unreachable_silence : Note<
 def ext_implicit_lib_function_decl : ExtWarn<
   "implicitly declaring library function '%0' with type %1">,
   InGroup<ImplicitFunctionDeclare>;
+def ext_implicit_lib_function_decl_c99 : ExtWarn<
+  "call to undeclared library function '%0' with type %1; ISO C99 and later "
+  "do not support implicit function declarations">,
+  InGroup<ImplicitFunctionDeclare>, DefaultError;
 def note_include_header_or_declare : Note<
   "include the header <%0> or explicitly provide a declaration for '%1'">;
 def note_previous_builtin_declaration : Note<"%0 is a builtin with type %1">;

diff  --git a/clang/lib/Sema/SemaDecl.cpp b/clang/lib/Sema/SemaDecl.cpp
index 937478416f6d7..5d546216dde3b 100644
--- a/clang/lib/Sema/SemaDecl.cpp
+++ b/clang/lib/Sema/SemaDecl.cpp
@@ -933,9 +933,12 @@ Sema::NameClassification Sema::ClassifyName(Scope *S, CXXScopeSpec &SS,
       //
       //   appeared.
       //
-      // We also allow this in C99 as an extension.
-      if (NamedDecl *D = ImplicitlyDefineFunction(NameLoc, *Name, S))
-        return NameClassification::NonType(D);
+      // We also allow this in C99 as an extension. However, this is not
+      // allowed in C2x as there are no functions without prototypes there.
+      if (!getLangOpts().C2x) {
+        if (NamedDecl *D = ImplicitlyDefineFunction(NameLoc, *Name, S))
+          return NameClassification::NonType(D);
+      }
     }
 
     if (getLangOpts().CPlusPlus20 && SS.isEmpty() && NextToken.is(tok::less)) {
@@ -2302,7 +2305,8 @@ NamedDecl *Sema::LazilyCreateBuiltin(IdentifierInfo *II, unsigned ID,
   if (!ForRedeclaration &&
       (Context.BuiltinInfo.isPredefinedLibFunction(ID) ||
        Context.BuiltinInfo.isHeaderDependentFunction(ID))) {
-    Diag(Loc, diag::ext_implicit_lib_function_decl)
+    Diag(Loc, LangOpts.C99 ? diag::ext_implicit_lib_function_decl_c99
+                           : diag::ext_implicit_lib_function_decl)
         << Context.BuiltinInfo.getName(ID) << R;
     if (const char *Header = Context.BuiltinInfo.getHeaderName(ID))
       Diag(Loc, diag::note_include_header_or_declare)
@@ -15267,6 +15271,9 @@ void Sema::ActOnFinishDelayedAttribute(Scope *S, Decl *D,
 /// call, forming a call to an implicitly defined function (per C99 6.5.1p2).
 NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc,
                                           IdentifierInfo &II, Scope *S) {
+  // It is not valid to implicitly define a function in C2x.
+  assert(!LangOpts.C2x && "Cannot implicitly define a function in C2x");
+
   // Find the scope in which the identifier is injected and the corresponding
   // DeclContext.
   // FIXME: C89 does not say what happens if there is no enclosing block scope.
@@ -15305,7 +15312,7 @@ NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc,
     }
   }
 
-  // Extension in C99.  Legal in C90, but warn about it.
+  // Extension in C99 (defaults to error). Legal in C89, but warn about it.
   unsigned diag_id;
   if (II.getName().startswith("__builtin_"))
     diag_id = diag::warn_builtin_unknown;
@@ -15313,7 +15320,7 @@ NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc,
   else if (getLangOpts().OpenCL)
     diag_id = diag::err_opencl_implicit_function_decl;
   else if (getLangOpts().C99)
-    diag_id = diag::ext_implicit_function_decl;
+    diag_id = diag::ext_implicit_function_decl_c99;
   else
     diag_id = diag::warn_implicit_function_decl;
 
@@ -15331,9 +15338,16 @@ NamedDecl *Sema::ImplicitlyDefineFunction(SourceLocation Loc,
   }
 
   Diag(Loc, diag_id) << &II;
-  if (Corrected)
-    diagnoseTypo(Corrected, PDiag(diag::note_function_suggestion),
-                 /*ErrorRecovery*/ false);
+  if (Corrected) {
+    // If the correction is going to suggest an implicitly defined function,
+    // skip the correction as not being a particularly good idea.
+    bool Diagnose = true;
+    if (const auto *D = Corrected.getCorrectionDecl())
+      Diagnose = !D->isImplicit();
+    if (Diagnose)
+      diagnoseTypo(Corrected, PDiag(diag::note_function_suggestion),
+                   /*ErrorRecovery*/ false);
+  }
 
   // If we found a prior declaration of this function, don't bother building
   // another one. We've already pushed that one into scope, so there's nothing

diff  --git a/clang/lib/Sema/SemaExpr.cpp b/clang/lib/Sema/SemaExpr.cpp
index bb0bde6a31b50..59c1123749f54 100644
--- a/clang/lib/Sema/SemaExpr.cpp
+++ b/clang/lib/Sema/SemaExpr.cpp
@@ -2554,8 +2554,9 @@ Sema::ActOnIdExpression(Scope *S, CXXScopeSpec &SS,
     return ExprError();
 
   // This could be an implicitly declared function reference (legal in C90,
-  // extension in C99, forbidden in C++).
-  if (R.empty() && HasTrailingLParen && II && !getLangOpts().CPlusPlus) {
+  // extension in C99, forbidden in C++ and C2x).
+  if (R.empty() && HasTrailingLParen && II && !getLangOpts().CPlusPlus &&
+      !getLangOpts().C2x) {
     NamedDecl *D = ImplicitlyDefineFunction(NameLoc, *II, S);
     if (D) R.addDecl(D);
   }

diff  --git a/clang/lib/Sema/SemaLookup.cpp b/clang/lib/Sema/SemaLookup.cpp
index ae3923854b527..604c29c36fd2c 100644
--- a/clang/lib/Sema/SemaLookup.cpp
+++ b/clang/lib/Sema/SemaLookup.cpp
@@ -930,9 +930,11 @@ bool Sema::LookupBuiltin(LookupResult &R) {
 
       // If this is a builtin on this (or all) targets, create the decl.
       if (unsigned BuiltinID = II->getBuiltinID()) {
-        // In C++ and OpenCL (spec v1.2 s6.9.f), we don't have any predefined
-        // library functions like 'malloc'. Instead, we'll just error.
-        if ((getLangOpts().CPlusPlus || getLangOpts().OpenCL) &&
+        // In C++, C2x, and OpenCL (spec v1.2 s6.9.f), we don't have any
+        // predefined library functions like 'malloc'. Instead, we'll just
+        // error.
+        if ((getLangOpts().CPlusPlus || getLangOpts().OpenCL ||
+             getLangOpts().C2x) &&
             Context.BuiltinInfo.isPredefinedLibFunction(BuiltinID))
           return false;
 

diff  --git a/clang/test/ARCMT/objcmt-arc-cf-annotations.m b/clang/test/ARCMT/objcmt-arc-cf-annotations.m
index 221a8a9e7d4d0..6b394e3b33ea3 100644
--- a/clang/test/ARCMT/objcmt-arc-cf-annotations.m
+++ b/clang/test/ARCMT/objcmt-arc-cf-annotations.m
@@ -80,6 +80,7 @@ static __inline__ __attribute__((always_inline)) CFRange CFRangeMake(CFIndex loc
 extern const CFAllocatorRef kCFAllocatorDefault;
 extern CFTypeRef CFRetain(CFTypeRef cf);
 extern void CFRelease(CFTypeRef cf);
+extern CFTypeRef CFAutorelease(CFTypeRef cf);
 extern CFTypeRef CFMakeCollectable(CFTypeRef cf);
 typedef struct {
 }

diff  --git a/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result b/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
index 6621b10ef5d50..33727329fe5eb 100644
--- a/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
+++ b/clang/test/ARCMT/objcmt-arc-cf-annotations.m.result
@@ -86,6 +86,7 @@ extern void CFRelease(CFTypeRef cf);
 
 CF_IMPLICIT_BRIDGING_DISABLED
 
+extern CFTypeRef CFAutorelease(CFTypeRef cf);
 extern CFTypeRef CFMakeCollectable(CFTypeRef cf);
 typedef struct {
 }

diff  --git a/clang/test/Analysis/OSAtomic_mac.c b/clang/test/Analysis/OSAtomic_mac.c
index 4e07105a035cc..5cf7e93014323 100644
--- a/clang/test/Analysis/OSAtomic_mac.c
+++ b/clang/test/Analysis/OSAtomic_mac.c
@@ -1,6 +1,8 @@
 // RUN: %clang_analyze_cc1 -w -analyzer-checker=core,debug.ExprInspection \
 // RUN:                    -analyzer-output=text -verify %s
 
+extern void clang_analyzer_eval(int);
+
 int OSAtomicCompareAndSwapPtrBarrier(void *, void *, void **);
 int OSAtomicCompareAndSwapPtrBarrier(void *, void *, void **) {
   // There is some body in the actual header,

diff  --git a/clang/test/Analysis/ObjCProperties.m b/clang/test/Analysis/ObjCProperties.m
index c4d264471fd16..7043f9f93202a 100644
--- a/clang/test/Analysis/ObjCProperties.m
+++ b/clang/test/Analysis/ObjCProperties.m
@@ -2,6 +2,7 @@
 // RUN:     -analyzer-checker=core,alpha.core,debug.ExprInspection
 
 #ifdef HEADER // A clever trick to avoid splitting up the test.
+extern void clang_analyzer_eval(int);
 
 @interface NSObject
 @end

diff  --git a/clang/test/Analysis/PR49642.c b/clang/test/Analysis/PR49642.c
index af691d6afd6fd..b9bc27ad9f48c 100644
--- a/clang/test/Analysis/PR49642.c
+++ b/clang/test/Analysis/PR49642.c
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 -w -verify %s \
+// RUN: %clang_analyze_cc1 -Wno-implicit-function-declaration -w -verify %s \
 // RUN:   -analyzer-checker=core \
 // RUN:   -analyzer-checker=apiModeling.StdCLibraryFunctions
 

diff  --git a/clang/test/Analysis/dead-stores.c b/clang/test/Analysis/dead-stores.c
index 701e0a58b84ed..170569eb29a09 100644
--- a/clang/test/Analysis/dead-stores.c
+++ b/clang/test/Analysis/dead-stores.c
@@ -12,6 +12,8 @@
 // RUN:   -analyzer-config deadcode.DeadStores:ShowFixIts=true \
 // RUN:   -verify=non-nested,nested
 
+extern int printf(const char *, ...);
+
 void f1(void) {
   int k, y; // non-nested-warning {{unused variable 'k'}}
             // non-nested-warning at -1 {{unused variable 'y'}}
@@ -30,8 +32,6 @@ void f2(void *b) {
   // CHECK-FIXES-NEXT: char *d;
 
   printf("%s", c);
-  // non-nested-warning at -1 {{implicitly declaring library function 'printf' with type 'int (const char *, ...)'}}
-  // non-nested-note at -2 {{include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
 }
 
 int f(void);

diff  --git a/clang/test/Analysis/diagnostics/no-store-func-path-notes.c b/clang/test/Analysis/diagnostics/no-store-func-path-notes.c
index 2aa95fe2d6175..24b511290ed20 100644
--- a/clang/test/Analysis/diagnostics/no-store-func-path-notes.c
+++ b/clang/test/Analysis/diagnostics/no-store-func-path-notes.c
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 -w -x c -analyzer-checker=core -analyzer-output=text\
+// RUN: %clang_analyze_cc1 -w -Wno-implicit-function-declaration -analyzer-checker=core -analyzer-output=text\
 // RUN:     -verify %s
 
 typedef __typeof(sizeof(int)) size_t;

diff  --git a/clang/test/Analysis/exercise-ps.c b/clang/test/Analysis/exercise-ps.c
index 6d1b40f13cd33..d214c3959b207 100644
--- a/clang/test/Analysis/exercise-ps.c
+++ b/clang/test/Analysis/exercise-ps.c
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 %s -verify \
+// RUN: %clang_analyze_cc1 %s -verify -Wno-error=implicit-function-declaration \
 // RUN:   -analyzer-checker=core \
 // RUN:   -analyzer-config core.CallAndMessage:ArgPointeeInitializedness=true
 //
@@ -19,7 +19,7 @@ void_typedef f2_helper(void);
 static void f2(void *buf) {
   F12_typedef* x;
   x = f2_helper();
-  memcpy((&x[1]), (buf), 1); // expected-warning{{implicitly declaring library function 'memcpy' with type 'void *(void *, const void *}} \
+  memcpy((&x[1]), (buf), 1); // expected-warning{{call to undeclared library function 'memcpy' with type 'void *(void *, const void *}} \
   // expected-note{{include the header <string.h> or explicitly provide a declaration for 'memcpy'}}
 }
 

diff  --git a/clang/test/Analysis/malloc-three-arg.c b/clang/test/Analysis/malloc-three-arg.c
index 005b8940a1a99..ae6b7e921287a 100644
--- a/clang/test/Analysis/malloc-three-arg.c
+++ b/clang/test/Analysis/malloc-three-arg.c
@@ -6,6 +6,7 @@
 #define NULL ((void *)0)
 
 void *malloc(size_t, void *, int);
+void free(void *);
 
 struct test {
 };

diff  --git a/clang/test/Analysis/misc-ps-region-store.m b/clang/test/Analysis/misc-ps-region-store.m
index afe56bc65c195..fabe8a2bb8d25 100644
--- a/clang/test/Analysis/misc-ps-region-store.m
+++ b/clang/test/Analysis/misc-ps-region-store.m
@@ -1,5 +1,5 @@
-// RUN: %clang_analyze_cc1 -triple i386-apple-darwin9 -analyzer-checker=core,alpha.core.CastToStruct,alpha.security.ReturnPtrRange,alpha.security.ArrayBound -analyzer-store=region -verify -fblocks -analyzer-opt-analyze-nested-blocks -Wno-objc-root-class -Wno-strict-prototypes %s
-// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin9 -DTEST_64 -analyzer-checker=core,alpha.core.CastToStruct,alpha.security.ReturnPtrRange,alpha.security.ArrayBound -analyzer-store=region -verify -fblocks   -analyzer-opt-analyze-nested-blocks -Wno-objc-root-class -Wno-strict-prototypes %s
+// RUN: %clang_analyze_cc1 -triple i386-apple-darwin9 -analyzer-checker=core,alpha.core.CastToStruct,alpha.security.ReturnPtrRange,alpha.security.ArrayBound -analyzer-store=region -verify -fblocks -analyzer-opt-analyze-nested-blocks -Wno-objc-root-class -Wno-strict-prototypes -Wno-error=implicit-function-declaration %s
+// RUN: %clang_analyze_cc1 -triple x86_64-apple-darwin9 -DTEST_64 -analyzer-checker=core,alpha.core.CastToStruct,alpha.security.ReturnPtrRange,alpha.security.ArrayBound -analyzer-store=region -verify -fblocks   -analyzer-opt-analyze-nested-blocks -Wno-objc-root-class -Wno-strict-prototypes -Wno-error=implicit-function-declaration %s
 
 typedef long unsigned int size_t;
 void *memcpy(void *, const void *, size_t);
@@ -1255,7 +1255,7 @@ void Rdar_9103310_E(Rdar_9103310_A * x, struct Rdar_9103310_C * b) { // expected
   int i;
   Rdar_9103310_B_t *y = (Rdar_9103310_B_t *) x;
   for (i = 0; i < 101; i++) {
-    Rdar_9103310_F(b, "%2d%s ", (y->Rdar_9103310_C[i]) / 4, Rdar_9103310_D[(y->Rdar_9103310_C[i]) % 4]); // expected-warning {{implicit declaration of function 'Rdar_9103310_F' is invalid in C99}}
+    Rdar_9103310_F(b, "%2d%s ", (y->Rdar_9103310_C[i]) / 4, Rdar_9103310_D[(y->Rdar_9103310_C[i]) % 4]); // expected-warning {{call to undeclared function 'Rdar_9103310_F'; ISO C99 and later do not support implicit function declarations}}
   }
 }
 

diff  --git a/clang/test/Analysis/novoidtypecrash.c b/clang/test/Analysis/novoidtypecrash.c
index b19990a2791b0..e0a0a4ed96e2c 100644
--- a/clang/test/Analysis/novoidtypecrash.c
+++ b/clang/test/Analysis/novoidtypecrash.c
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 -analyzer-checker=core %s
+// RUN: %clang_analyze_cc1 -std=c89 -analyzer-checker=core %s
 x;
 y(void **z) { // no-crash
   *z = x;

diff  --git a/clang/test/Analysis/plist-macros-with-expansion.c b/clang/test/Analysis/plist-macros-with-expansion.c
index c3222f63537cc..10c78938960aa 100644
--- a/clang/test/Analysis/plist-macros-with-expansion.c
+++ b/clang/test/Analysis/plist-macros-with-expansion.c
@@ -1,4 +1,4 @@
-// RUN: %clang_analyze_cc1 -analyzer-checker=core %s  \
+// RUN: %clang_analyze_cc1 -Wno-error=implicit-function-declaration -analyzer-checker=core %s  \
 // RUN:   -analyzer-output=plist -o %t.plist \
 // RUN:   -analyzer-config expand-macros=true -verify
 //
@@ -8,7 +8,7 @@
 void test_strange_macro_expansion(void) {
   char *path;
   STRANGE_FN(path); // no-crash
-  // expected-warning at -1 {{implicit declaration of function}}
+  // expected-warning at -1 {{call to undeclared function}}
   // expected-warning at -2 {{1st function call argument is an uninitialized value}}
 }
 

diff  --git a/clang/test/CodeGen/2002-07-14-MiscTests3.c b/clang/test/CodeGen/2002-07-14-MiscTests3.c
index f7ded4e720deb..b9d69ee2c7ef0 100644
--- a/clang/test/CodeGen/2002-07-14-MiscTests3.c
+++ b/clang/test/CodeGen/2002-07-14-MiscTests3.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -w -emit-llvm %s  -o /dev/null
+// RUN: %clang_cc1 -Wno-implicit-function-declaration -w -emit-llvm %s  -o /dev/null
 
 void *malloc(unsigned);
 int puts(const char *s);

diff  --git a/clang/test/CodeGen/2002-07-31-SubregFailure.c b/clang/test/CodeGen/2002-07-31-SubregFailure.c
index f66be4e7f8109..57dafee9e1d14 100644
--- a/clang/test/CodeGen/2002-07-31-SubregFailure.c
+++ b/clang/test/CodeGen/2002-07-31-SubregFailure.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm %s  -o /dev/null
+// RUN: %clang_cc1 -Wno-implicit-function-declaration -emit-llvm %s  -o /dev/null
 
 
 typedef union {

diff  --git a/clang/test/CodeGen/2003-08-18-SigSetJmp.c b/clang/test/CodeGen/2003-08-18-SigSetJmp.c
index fb36f9f23d355..986bcb8bd74c3 100644
--- a/clang/test/CodeGen/2003-08-18-SigSetJmp.c
+++ b/clang/test/CodeGen/2003-08-18-SigSetJmp.c
@@ -3,6 +3,7 @@
 #define _JBLEN ((9 * 2) + 3 + 16)
 typedef int sigjmp_buf[_JBLEN + 1];
 int sigsetjmp(sigjmp_buf env, int savemask);
+void bar(void);
 sigjmp_buf B;
 int foo(void) {
   sigsetjmp(B, 1);

diff  --git a/clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c b/clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c
index e9e2a9b01bb96..0650c744e46c4 100644
--- a/clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c
+++ b/clang/test/CodeGen/2004-11-27-StaticFunctionRedeclare.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
+// RUN: %clang_cc1 -std=c89 -emit-llvm %s -o - | FileCheck %s
 
 // There should not be an unresolved reference to func here.  Believe it or not,
 // the "expected result" is a function named 'func' which is internal and

diff  --git a/clang/test/CodeGen/2005-01-02-ConstantInits.c b/clang/test/CodeGen/2005-01-02-ConstantInits.c
index d54c697cdd988..a204739102080 100644
--- a/clang/test/CodeGen/2005-01-02-ConstantInits.c
+++ b/clang/test/CodeGen/2005-01-02-ConstantInits.c
@@ -5,6 +5,7 @@
 // array subscripts.  This corresponds to PR487.
 
 struct X { int a[2]; };
+extern int bar();
 
 //.
 // CHECK: @test.i23 = internal global i32 4, align 4

diff  --git a/clang/test/CodeGen/2005-01-02-VAArgError-ICE.c b/clang/test/CodeGen/2005-01-02-VAArgError-ICE.c
index 06377c23d2aa9..39439d7c614cd 100644
--- a/clang/test/CodeGen/2005-01-02-VAArgError-ICE.c
+++ b/clang/test/CodeGen/2005-01-02-VAArgError-ICE.c
@@ -1,6 +1,6 @@
 // This file is erroneous, but should not cause the compiler to ICE.
 // PR481
-// RUN: %clang_cc1 %s -emit-llvm -o /dev/null
+// RUN: %clang_cc1 %s -Wno-implicit-function-declaration -emit-llvm -o /dev/null
 
 int flags(int a, int b, ...) {
         __builtin_va_list         args;

diff  --git a/clang/test/CodeGen/2005-02-20-AggregateSAVEEXPR.c b/clang/test/CodeGen/2005-02-20-AggregateSAVEEXPR.c
index 99efb1bf79f33..33f7e10ed2ade 100644
--- a/clang/test/CodeGen/2005-02-20-AggregateSAVEEXPR.c
+++ b/clang/test/CodeGen/2005-02-20-AggregateSAVEEXPR.c
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 %s -o /dev/null -emit-llvm
 
+double creal(_Complex double);
+
 int foo(__complex float c) {
     return creal(c);
 }

diff  --git a/clang/test/CodeGen/2006-01-13-StackSave.c b/clang/test/CodeGen/2006-01-13-StackSave.c
index e9c9738a87f9e..ca8c7ec0ef19a 100644
--- a/clang/test/CodeGen/2006-01-13-StackSave.c
+++ b/clang/test/CodeGen/2006-01-13-StackSave.c
@@ -2,6 +2,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers %s -emit-llvm -o - | FileCheck %s
 // CHECK: call i8* @llvm.stacksave()
 
+extern void external(int[*]);
+
 void test(int N) {
   int i;
   for (i = 0; i < N; ++i) {

diff  --git a/clang/test/CodeGen/2006-03-03-MissingInitializer.c b/clang/test/CodeGen/2006-03-03-MissingInitializer.c
index ca392a778c3c9..e1085f4b94f57 100644
--- a/clang/test/CodeGen/2006-03-03-MissingInitializer.c
+++ b/clang/test/CodeGen/2006-03-03-MissingInitializer.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 %s -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 %s -emit-llvm -std=c89 -o - | FileCheck %s
 
 struct X { int *XX; int Y;};
 

diff  --git a/clang/test/CodeGen/2007-09-27-ComplexIntCompare.c b/clang/test/CodeGen/2007-09-27-ComplexIntCompare.c
index 7fc8da33c459f..f116aa717d7b8 100644
--- a/clang/test/CodeGen/2007-09-27-ComplexIntCompare.c
+++ b/clang/test/CodeGen/2007-09-27-ComplexIntCompare.c
@@ -2,6 +2,7 @@
 // PR1708
 
 void __attribute__((noreturn)) abort(void);
+void __attribute__((noreturn)) exit(int);
 
 struct s { _Complex unsigned short x; };
 struct s gs = { 100 + 200i };

diff  --git a/clang/test/CodeGen/2008-05-12-TempUsedBeforeDef.c b/clang/test/CodeGen/2008-05-12-TempUsedBeforeDef.c
index c88c22b874626..2c32ba1d30450 100644
--- a/clang/test/CodeGen/2008-05-12-TempUsedBeforeDef.c
+++ b/clang/test/CodeGen/2008-05-12-TempUsedBeforeDef.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -w -emit-llvm -o /dev/null %s
+// RUN: %clang_cc1 -std=c89 -w -emit-llvm -o /dev/null %s
 // PR2264.
 unsigned foo = 8L;
 unsigned bar = 0L;

diff  --git a/clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c b/clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c
index c149d831e9bda..9fd952b6b68fa 100644
--- a/clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c
+++ b/clang/test/CodeGen/2008-07-30-redef-of-bitcasted-decl.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm -o - %s
+// RUN: %clang_cc1 -std=c89 -emit-llvm -o - %s
 // <rdar://problem/6108358>
 
 /* For posterity, the issue here begins initial "char []" decl for

diff  --git a/clang/test/CodeGen/2008-08-19-cast-of-typedef.c b/clang/test/CodeGen/2008-08-19-cast-of-typedef.c
index 740f48a8baa36..b3a4a056b5f9c 100644
--- a/clang/test/CodeGen/2008-08-19-cast-of-typedef.c
+++ b/clang/test/CodeGen/2008-08-19-cast-of-typedef.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -emit-llvm -o %t %s
+// RUN: %clang_cc1 -std=c89 -emit-llvm -o %t %s
 
 typedef short T[4];
 struct s {

diff  --git a/clang/test/CodeGen/2008-10-13-FrontendCrash.c b/clang/test/CodeGen/2008-10-13-FrontendCrash.c
index cdd122970583f..da28bd9b1b9b1 100644
--- a/clang/test/CodeGen/2008-10-13-FrontendCrash.c
+++ b/clang/test/CodeGen/2008-10-13-FrontendCrash.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 %s -emit-llvm -o -
+// RUN: %clang_cc1 %s -std=c89 -emit-llvm -o -
 // PR2797
 
 unsigned int

diff  --git a/clang/test/CodeGen/2009-01-05-BlockInlining.c b/clang/test/CodeGen/2009-01-05-BlockInlining.c
index 300b6ca55ab49..b9b1a9ee5e6f0 100644
--- a/clang/test/CodeGen/2009-01-05-BlockInlining.c
+++ b/clang/test/CodeGen/2009-01-05-BlockInlining.c
@@ -15,6 +15,7 @@ static int block(int x) {
 	return (^(int x){return x+1;})(x);
 }
 
+extern int printf(const char *, ...);
 static void print(int result) {
     printf("%d\n", result);
 }

diff  --git a/clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c b/clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
index 7825d69c97ecf..a703e0980de15 100644
--- a/clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
+++ b/clang/test/CodeGen/PowerPC/builtins-ppc-p8vector.c
@@ -131,11 +131,11 @@ void test1() {
 // CHECK: @llvm.ppc.altivec.vaddecuq
 // CHECK-LE: @llvm.ppc.altivec.vaddecuq
 
-  /* vec_mergee */  
+  /* vec_mergee */
   res_vbi = vec_mergee(vbi, vbi);
 // CHECK: @llvm.ppc.altivec.vperm
 // CHECK-LE: @llvm.ppc.altivec.vperm
-  
+
   res_vsi = vec_mergee(vsi, vsi);
 // CHECK: @llvm.ppc.altivec.vperm
 // CHECK-LE: @llvm.ppc.altivec.vperm
@@ -143,7 +143,7 @@ void test1() {
   res_vui = vec_mergee(vui, vui);
 // CHECK: @llvm.ppc.altivec.vperm
 // CHECK-LE: @llvm.ppc.altivec.vperm
-// CHECK-PPC: warning: implicit declaration of function 'vec_mergee'
+// CHECK-PPC: error: call to undeclared function 'vec_mergee'
 
   res_vbll = vec_mergee(vbll, vbll);
 // CHECK: @llvm.ppc.altivec.vperm
@@ -177,8 +177,8 @@ void test1() {
   res_vui = vec_mergeo(vui, vui);
 // CHECK: @llvm.ppc.altivec.vperm
 // CHECK-LE: @llvm.ppc.altivec.vperm
-// CHECK-PPC: warning: implicit declaration of function 'vec_mergeo'
-  
+// CHECK-PPC: error: call to undeclared function 'vec_mergeo'
+
   /* vec_cmpeq */
   res_vbll = vec_cmpeq(vbll, vbll);
 // CHECK: @llvm.ppc.altivec.vcmpequd
@@ -403,7 +403,7 @@ void test1() {
   res_vsc = vec_cntlz(vsc);
 // CHECK: call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> %{{.+}}, i1 false)
 // CHECK-LE: call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> %{{.+}}, i1 false)
-// CHECK-PPC: warning: implicit declaration of function 'vec_cntlz' is invalid in C99
+// CHECK-PPC: error: call to undeclared function 'vec_cntlz'
 
   res_vuc = vec_cntlz(vuc);
 // CHECK: call <16 x i8> @llvm.ctlz.v16i8(<16 x i8> %{{.+}}, i1 false)
@@ -754,19 +754,19 @@ void test1() {
   res_vsi = vec_vpksdss(vsll, vsll);
 // CHECK: llvm.ppc.altivec.vpksdss
 // CHECK-LE: llvm.ppc.altivec.vpksdss
-// CHECK-PPC: warning: implicit declaration of function 'vec_vpksdss'
+// CHECK-PPC: error: call to undeclared function 'vec_vpksdss'
 
   /* vec_vpksdus */
   res_vui = vec_vpksdus(vsll, vsll);
 // CHECK: llvm.ppc.altivec.vpksdus
 // CHECK-LE: llvm.ppc.altivec.vpksdus
-// CHECK-PPC: warning: implicit declaration of function 'vec_vpksdus'
+// CHECK-PPC: error: call to undeclared function 'vec_vpksdus'
 
   /* vec_vpkudum */
   res_vsi = vec_vpkudum(vsll, vsll);
 // CHECK: vperm
 // CHECK-LE: vperm
-// CHECK-PPC: warning: implicit declaration of function 'vec_vpkudum'
+// CHECK-PPC: error: call to undeclared function 'vec_vpkudum'
 
   res_vui = vec_vpkudum(vull, vull);
 // CHECK: vperm
@@ -775,13 +775,13 @@ void test1() {
   res_vui = vec_vpkudus(vull, vull);
 // CHECK: llvm.ppc.altivec.vpkudus
 // CHECK-LE: llvm.ppc.altivec.vpkudus
-// CHECK-PPC: warning: implicit declaration of function 'vec_vpkudus'
+// CHECK-PPC: error: call to undeclared function 'vec_vpkudus'
 
   /* vec_vupkhsw */
   res_vsll = vec_vupkhsw(vsi);
 // CHECK: llvm.ppc.altivec.vupkhsw
 // CHECK-LE: llvm.ppc.altivec.vupklsw
-// CHECK-PPC: warning: implicit declaration of function 'vec_vupkhsw'
+// CHECK-PPC: error: call to undeclared function 'vec_vupkhsw'
 
   res_vbll = vec_vupkhsw(vbi);
 // CHECK: llvm.ppc.altivec.vupkhsw
@@ -791,7 +791,7 @@ void test1() {
   res_vsll = vec_vupklsw(vsi);
 // CHECK: llvm.ppc.altivec.vupklsw
 // CHECK-LE: llvm.ppc.altivec.vupkhsw
-// CHECK-PPC: warning: implicit declaration of function 'vec_vupklsw'
+// CHECK-PPC: error: call to undeclared function 'vec_vupklsw'
 
   res_vbll = vec_vupklsw(vbi);
 // CHECK: llvm.ppc.altivec.vupklsw
@@ -845,20 +845,20 @@ void test1() {
 // CHECK: xor <16 x i8> [[T1]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
 // CHECK-LE: [[T1:%.+]] = and <16 x i8>
 // CHECK-LE: xor <16 x i8> [[T1]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
-// CHECK-PPC: warning: implicit declaration of function 'vec_nand' is invalid in C99
+// CHECK-PPC: error: call to undeclared function 'vec_nand'
 
   res_vsc = vec_nand(vbc, vbc);
 // CHECK: [[T1:%.+]] = and <16 x i8>
 // CHECK: xor <16 x i8> [[T1]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
 // CHECK-LE: [[T1:%.+]] = and <16 x i8>
 // CHECK-LE: xor <16 x i8> [[T1]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
-  
+
   res_vuc = vec_nand(vuc, vuc);
 // CHECK: [[T1:%.+]] = and <16 x i8>
 // CHECK: xor <16 x i8> [[T1]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
 // CHECK-LE: [[T1:%.+]] = and <16 x i8>
 // CHECK-LE: xor <16 x i8> [[T1]], <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
-  
+
   res_vss = vec_nand(vss, vss);
 // CHECK: [[T1:%.+]] = and <8 x i16>
 // CHECK: xor <8 x i16> [[T1]], <i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1, i16 -1>
@@ -937,7 +937,7 @@ void test1() {
 // CHECK: or <16 x i8> {{%.+}}, [[T1]]
 // CHECK-LE: [[T1:%.+]] = xor <16 x i8> {{%.+}}, <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
 // CHECK-LE: or <16 x i8> {{%.+}}, [[T1]]
-// CHECK-PPC: warning: implicit declaration of function 'vec_orc' is invalid in C99
+// CHECK-PPC: error: call to undeclared function 'vec_orc'
 
   res_vsc = vec_orc(vsc, vbc);
 // CHECK: [[T1:%.+]] = xor <16 x i8> {{%.+}}, <i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1, i8 -1>
@@ -1166,7 +1166,7 @@ void test1() {
   res_vull = vec_vbpermq(vuc, vuc);
 // CHECK: llvm.ppc.altivec.vbpermq
 // CHECK-LE: llvm.ppc.altivec.vbpermq
-// CHECK-PPC: warning: implicit declaration of function 'vec_vbpermq'
+// CHECK-PPC: error: call to undeclared function 'vec_vbpermq'
 
   /* vec_vgbbd */
   res_vsc = vec_vgbbd(vsc);
@@ -1176,12 +1176,12 @@ void test1() {
   res_vuc = vec_vgbbd(vuc);
 // CHECK: llvm.ppc.altivec.vgbbd
 // CHECK-LE: llvm.ppc.altivec.vgbbd
-// CHECK-PPC: warning: implicit declaration of function 'vec_vgbbd'
+// CHECK-PPC: error: call to undeclared function 'vec_vgbbd'
 
   res_vuc = vec_gb(vuc);
 // CHECK: llvm.ppc.altivec.vgbbd
 // CHECK-LE: llvm.ppc.altivec.vgbbd
-// CHECK-PPC: warning: implicit declaration of function 'vec_gb'
+// CHECK-PPC: error: call to undeclared function 'vec_gb'
 
   res_vsll = vec_gbb(vsll);
 // CHECK: llvm.ppc.altivec.vgbbd

diff  --git a/clang/test/CodeGen/X86/bmi2-builtins.c b/clang/test/CodeGen/X86/bmi2-builtins.c
index f5d36c31a1b13..a9e9bc5862a34 100644
--- a/clang/test/CodeGen/X86/bmi2-builtins.c
+++ b/clang/test/CodeGen/X86/bmi2-builtins.c
@@ -19,14 +19,14 @@ unsigned int test_pext_u32(unsigned int __X, unsigned int __Y) {
   return _pext_u32(__X, __Y);
 }
 
+#ifdef __i386__
 unsigned int test_mulx_u32(unsigned int __X, unsigned int __Y,
                                  unsigned int *__P) {
-  // CHECK: @test_mulx_u32
-  // CHECK-NOT: mul i64
   // B32: @test_mulx_u32
   // B32: mul i64
   return _mulx_u32(__X, __Y, __P);
 }
+#endif
 
 #ifdef __x86_64__
 unsigned long long test_bzhi_u64(unsigned long long __X, unsigned long long __Y) {

diff  --git a/clang/test/CodeGen/aarch64-mops.c b/clang/test/CodeGen/aarch64-mops.c
index 3aada04bdc663..c3ddece816550 100644
--- a/clang/test/CodeGen/aarch64-mops.c
+++ b/clang/test/CodeGen/aarch64-mops.c
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi -target-feature +mops -target-feature +mte -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-MOPS   %s
-// RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi -target-feature +mops                      -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-NOMOPS %s
-// RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi                       -target-feature +mte -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-NOMOPS %s
-// RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi                                            -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-NOMOPS %s
+// RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi -target-feature +mops -Wno-implicit-function-declaration -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-NOMOPS %s
+// RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi -Wno-implicit-function-declaration -target-feature +mte -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-NOMOPS %s
+// RUN: %clang_cc1 -triple aarch64-arm-unknown-eabi -Wno-implicit-function-declaration -w -S -emit-llvm -o - %s  | FileCheck --check-prefix=CHECK-NOMOPS %s
 
 #include <arm_acle.h>
 #include <stddef.h>

diff  --git a/clang/test/CodeGen/aarch64-neon-sm4-sm3.c b/clang/test/CodeGen/aarch64-neon-sm4-sm3.c
index bdce243107fa7..6c89a1a7bceca 100644
--- a/clang/test/CodeGen/aarch64-neon-sm4-sm3.c
+++ b/clang/test/CodeGen/aarch64-neon-sm4-sm3.c
@@ -2,7 +2,7 @@
 // RUN:  -target-feature +sm4 -S -emit-llvm -o - %s \
 // RUN:  | FileCheck %s
 
-// RUN: not %clang_cc1 -triple aarch64-linux-gnu -target-feature +neon \
+// RUN: not %clang_cc1 -Wno-error=implicit-function-declaration -triple aarch64-linux-gnu -target-feature +neon \
 // RUN: -S -emit-llvm -o - %s 2>&1 | FileCheck --check-prefix=CHECK-NO-CRYPTO %s
 
 // REQUIRES: aarch64-registered-target || arm-registered-target
@@ -11,7 +11,7 @@
 
 void test_vsm3partw1(uint32x4_t a, uint32x4_t b, uint32x4_t c) {
   // CHECK-LABEL: @test_vsm3partw1(
-  // CHECK-NO-CRYPTO: warning: implicit declaration of function 'vsm3partw1q_u32' is invalid in C99
+  // CHECK-NO-CRYPTO: warning: call to undeclared function 'vsm3partw1q_u32'
   // CHECK: call <4 x i32> @llvm.aarch64.crypto.sm3partw1
   uint32x4_t result = vsm3partw1q_u32(a, b, c);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c
index 4833ce51fddec..7990d55ae911f 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create2-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16x2_t test_svcreate2_bf16(svbfloat16_t x0, svbfloat16_t x1)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcreate2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcreate2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcreate2,_bf16,,)(x0, x1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c
index d9fa4a3e5bdb0..8327299e1104f 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create3-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16x3_t test_svcreate3_bf16(svbfloat16_t x0, svbfloat16_t x1, svbfloat16_t x2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcreate3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcreate3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcreate3,_bf16,,)(x0, x1, x2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c
index 00c7f5dbae9a6..215a20946d0cb 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_create4-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16x4_t test_svcreate4_bf16(svbfloat16_t x0, svbfloat16_t x1, svbfloat16_t x2, svbfloat16_t x4)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcreate4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcreate4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcreate4,_bf16,,)(x0, x1, x2, x4);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c
index a94d94c11f969..958f21d9d024e 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get2-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svbfloat16_t test_svget2_bf16_0(svbfloat16x2_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget2,_bf16,,)(tuple, 0);
 }
 
@@ -44,6 +44,6 @@ svbfloat16_t test_svget2_bf16_0(svbfloat16x2_t tuple)
 //
 svbfloat16_t test_svget2_bf16_1(svbfloat16x2_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget2,_bf16,,)(tuple, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c
index 078fae118d519..76614150dc66e 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get3-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svbfloat16_t test_svget3_bf16_0(svbfloat16x3_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget3,_bf16,,)(tuple, 0);
 }
 
@@ -44,7 +44,7 @@ svbfloat16_t test_svget3_bf16_0(svbfloat16x3_t tuple)
 //
 svbfloat16_t test_svget3_bf16_1(svbfloat16x3_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget3,_bf16,,)(tuple, 1);
 }
 
@@ -60,6 +60,6 @@ svbfloat16_t test_svget3_bf16_1(svbfloat16x3_t tuple)
 //
 svbfloat16_t test_svget3_bf16_2(svbfloat16x3_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget3,_bf16,,)(tuple, 2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c
index b9e8abcb3665e..f714f72ce4d02 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_get4-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svbfloat16_t test_svget4_bf16_0(svbfloat16x4_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget4,_bf16,,)(tuple, 0);
 }
 
@@ -44,7 +44,7 @@ svbfloat16_t test_svget4_bf16_0(svbfloat16x4_t tuple)
 //
 svbfloat16_t test_svget4_bf16_1(svbfloat16x4_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget4,_bf16,,)(tuple, 1);
 }
 
@@ -60,7 +60,7 @@ svbfloat16_t test_svget4_bf16_1(svbfloat16x4_t tuple)
 //
 svbfloat16_t test_svget4_bf16_2(svbfloat16x4_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget4,_bf16,,)(tuple, 2);
 }
 
@@ -76,6 +76,6 @@ svbfloat16_t test_svget4_bf16_2(svbfloat16x4_t tuple)
 //
 svbfloat16_t test_svget4_bf16_3(svbfloat16x4_t tuple)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svget4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svget4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svget4,_bf16,,)(tuple, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c
index 4745d1a8b07d8..fd187ead03af2 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,7 +32,7 @@
 //
 svbfloat16_t test_svld1_bf16(svbool_t pg, const bfloat16_t *base)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svld1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svld1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svld1,_bf16,,)(pg, base);
 }
 
@@ -56,6 +56,6 @@ svbfloat16_t test_svld1_bf16(svbool_t pg, const bfloat16_t *base)
 //
 svbfloat16_t test_svld1_vnum_bf16(svbool_t pg, const bfloat16_t *base, int64_t vnum)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svld1_vnum_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svld1_vnum_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svld1_vnum,_bf16,,)(pg, base, vnum);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq-bfloat.c
index b532531a7db50..5848f0398199d 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ld1rq-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -30,6 +30,6 @@
 //
 svbfloat16_t test_svld1rq_bf16(svbool_t pg, const bfloat16_t *base)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svld1rq_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svld1rq_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svld1rq,_bf16,,)(pg, base);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1-bfloat.c
index 7b43a19037b1e..c72dab3077b5f 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldff1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -30,7 +30,7 @@
 //
 svbfloat16_t test_svldff1_bf16(svbool_t pg, const bfloat16_t *base)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svldff1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svldff1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldff1,_bf16,,)(pg, base);
 }
 
@@ -52,6 +52,6 @@ svbfloat16_t test_svldff1_bf16(svbool_t pg, const bfloat16_t *base)
 //
 svbfloat16_t test_svldff1_vnum_bf16(svbool_t pg, const bfloat16_t *base, int64_t vnum)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svldff1_vnum_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svldff1_vnum_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldff1_vnum,_bf16,,)(pg, base, vnum);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1-bfloat.c
index 32120e632b362..2b63ed9b39e24 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnf1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 // REQUIRES: aarch64-registered-target
 
 #include <arm_sve.h>
@@ -29,7 +29,7 @@
 //
 svbfloat16_t test_svldnf1_bf16(svbool_t pg, const bfloat16_t *base)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svldnf1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svldnf1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnf1,_bf16,,)(pg, base);
 }
 
@@ -51,6 +51,6 @@ svbfloat16_t test_svldnf1_bf16(svbool_t pg, const bfloat16_t *base)
 //
 svbfloat16_t test_svldnf1_vnum_bf16(svbool_t pg, const bfloat16_t *base, int64_t vnum)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svldnf1_vnum_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svldnf1_vnum_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnf1_vnum,_bf16,,)(pg, base, vnum);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1-bfloat.c
index dc821cb3f3675..2c5057c9b205f 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_ldnt1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -30,7 +30,7 @@
 //
 svbfloat16_t test_svldnt1_bf16(svbool_t pg, const bfloat16_t *base)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1,_bf16,,)(pg, base);
 }
 
@@ -52,6 +52,6 @@ svbfloat16_t test_svldnt1_bf16(svbool_t pg, const bfloat16_t *base)
 //
 svbfloat16_t test_svldnt1_vnum_bf16(svbool_t pg, const bfloat16_t *base, int64_t vnum)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_vnum_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_vnum_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_vnum,_bf16,,)(pg, base, vnum);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c
index 4836b3dd50b5e..f64ea142b74d6 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_rev-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svrev_bf16(svbfloat16_t op)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svrev_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svrev_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrev,_bf16,,)(op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c
index a67106af67beb..09f1859303bb3 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set2-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svbfloat16x2_t test_svset2_bf16_0(svbfloat16x2_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset2,_bf16,,)(tuple, 0, x);
 }
 
@@ -44,6 +44,6 @@ svbfloat16x2_t test_svset2_bf16_0(svbfloat16x2_t tuple, svbfloat16_t x)
 //
 svbfloat16x2_t test_svset2_bf16_1(svbfloat16x2_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset2,_bf16,,)(tuple, 1, x);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c
index 0bee234f494d2..0e4fa9b5d3c90 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set3-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svbfloat16x3_t test_svset3_bf16_0(svbfloat16x3_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset3,_bf16,,)(tuple, 0, x);
 }
 
@@ -45,7 +45,7 @@ svbfloat16x3_t test_svset3_bf16_0(svbfloat16x3_t tuple, svbfloat16_t x)
 //
 svbfloat16x3_t test_svset3_bf16_1(svbfloat16x3_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset3,_bf16,,)(tuple, 1, x);
 }
 
@@ -61,6 +61,6 @@ svbfloat16x3_t test_svset3_bf16_1(svbfloat16x3_t tuple, svbfloat16_t x)
 //
 svbfloat16x3_t test_svset3_bf16_2(svbfloat16x3_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset3,_bf16,,)(tuple, 2, x);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c
index 640e3f6ca8364..d97bd53d8105e 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_set4-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svbfloat16x4_t test_svset4_bf16_0(svbfloat16x4_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset4,_bf16,,)(tuple, 0, x);
 }
 
@@ -45,7 +45,7 @@ svbfloat16x4_t test_svset4_bf16_0(svbfloat16x4_t tuple, svbfloat16_t x)
 //
 svbfloat16x4_t test_svset4_bf16_1(svbfloat16x4_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset4,_bf16,,)(tuple, 1, x);
 }
 
@@ -61,7 +61,7 @@ svbfloat16x4_t test_svset4_bf16_1(svbfloat16x4_t tuple, svbfloat16_t x)
 //
 svbfloat16x4_t test_svset4_bf16_2(svbfloat16x4_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset4,_bf16,,)(tuple, 2, x);
 }
 
@@ -77,6 +77,6 @@ svbfloat16x4_t test_svset4_bf16_2(svbfloat16x4_t tuple, svbfloat16_t x)
 //
 svbfloat16x4_t test_svset4_bf16_3(svbfloat16x4_t tuple, svbfloat16_t x)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svset4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svset4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svset4,_bf16,,)(tuple, 3, x);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c
index cdee81bd9680e..32e60100aac3e 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_st1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,7 +32,7 @@
 //
 void test_svst1_bf16(svbool_t pg, bfloat16_t *base, svbfloat16_t data)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svst1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svst1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svst1,_bf16,,)(pg, base, data);
 }
 
@@ -56,6 +56,6 @@ void test_svst1_bf16(svbool_t pg, bfloat16_t *base, svbfloat16_t data)
 //
 void test_svst1_vnum_bf16(svbool_t pg, bfloat16_t *base, int64_t vnum, svbfloat16_t data)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svst1_vnum_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svst1_vnum_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svst1_vnum,_bf16,,)(pg, base, vnum, data);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c
index 2e4e4c1d69d4c..7be3650b816f5 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_stnt1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -30,7 +30,7 @@
 //
 void test_svstnt1_bf16(svbool_t pg, bfloat16_t *base, svbfloat16_t data)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1,_bf16,,)(pg, base, data);
 }
 
@@ -52,6 +52,6 @@ void test_svstnt1_bf16(svbool_t pg, bfloat16_t *base, svbfloat16_t data)
 //
 void test_svstnt1_vnum_bf16(svbool_t pg, bfloat16_t *base, int64_t vnum, svbfloat16_t data)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_vnum_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_vnum_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_vnum,_bf16,,)(pg, base, vnum, data);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c
index 324e29e30107f..24c7c57ef71bf 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svtrn1_bf16(svbfloat16_t op1, svbfloat16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svtrn1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svtrn1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtrn1,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c
index 3732b7f62f3fb..8cbd01ec3f39c 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn1-fp64-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -target-feature +f64mm -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -27,6 +27,6 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svtrn1_bf16(svbfloat16_t op1, svbfloat16_t op2) {
-  // expected-warning at +1 {{implicit declaration of function 'svtrn1q_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svtrn1q_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtrn1q, _bf16, , )(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c
index 33f147935ee6b..19f7649581f69 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svtrn2_bf16(svbfloat16_t op1, svbfloat16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svtrn2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svtrn2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtrn2,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c
index f3201ee773cfd..27ff69ff7fe1e 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_trn2-fp64-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -target-feature +f64mm -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -27,6 +27,6 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svtrn2_bf16(svbfloat16_t op1, svbfloat16_t op2) {
-  // expected-warning at +1 {{implicit declaration of function 'svtrn2q_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svtrn2q_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtrn2q, _bf16, , )(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef-bfloat.c
index a1a87be84b06c..d3754005a28fa 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef-bfloat.c
@@ -1,7 +1,7 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -17,6 +17,6 @@
 //
 svbfloat16_t test_svundef_bf16()
 {
-  // expected-warning at +1 {{implicit declaration of function 'svundef_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svundef_bf16'; ISO C99 and later do not support implicit function declarations}}
   return svundef_bf16();
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2-bfloat.c
index 8cadb0d5bf232..26d9cea8db2f5 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef2-bfloat.c
@@ -1,7 +1,7 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -17,6 +17,6 @@
 //
 svbfloat16x2_t test_svundef2_bf16()
 {
-  // expected-warning at +1 {{implicit declaration of function 'svundef2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svundef2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return svundef2_bf16();
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3-bfloat.c
index 2ea7f1c7eb057..476c29f3207e4 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef3-bfloat.c
@@ -1,7 +1,7 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -17,6 +17,6 @@
 //
 svbfloat16x3_t test_svundef3_bf16()
 {
-  // expected-warning at +1 {{implicit declaration of function 'svundef3_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svundef3_bf16'; ISO C99 and later do not support implicit function declarations}}
   return svundef3_bf16();
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4-bfloat.c
index d980d03e2edc9..d0d6345984494 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_undef4-bfloat.c
@@ -1,7 +1,7 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -17,6 +17,6 @@
 //
 svbfloat16x4_t test_svundef4_bf16()
 {
-  // expected-warning at +1 {{implicit declaration of function 'svundef4_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svundef4_bf16'; ISO C99 and later do not support implicit function declarations}}
   return svundef4_bf16();
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c
index e12ebd5aa8e31..6506f186ea883 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svuzp1_bf16(svbfloat16_t op1, svbfloat16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svuzp1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svuzp1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuzp1,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c
index fc5dbe06a496c..56f61ec484110 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp1-fp64-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -target-feature +f64mm -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -27,6 +27,6 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svuzp1_bf16(svbfloat16_t op1, svbfloat16_t op2) {
-  // expected-warning at +1 {{implicit declaration of function 'svuzp1q_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svuzp1q_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuzp1q, _bf16, , )(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c
index 050efb8197fcf..d2d55aaa8aeae 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svuzp2_bf16(svbfloat16_t op1, svbfloat16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svuzp2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svuzp2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuzp2,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c
index 7200448564f90..6ad45e5d9e974 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_uzp2-fp64-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -target-feature +f64mm -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -27,6 +27,6 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svuzp2_bf16(svbfloat16_t op1, svbfloat16_t op2) {
-  // expected-warning at +1 {{implicit declaration of function 'svuzp2q_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svuzp2q_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuzp2q, _bf16, , )(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c
index 79d590986ed1b..c4582444c8470 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svzip1_bf16(svbfloat16_t op1, svbfloat16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svzip1_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svzip1_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svzip1,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c
index 2942a7adb7ab4..4f3b2c077e510 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip1-fp64-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -target-feature +f64mm -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -27,6 +27,6 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svzip1_bf16(svbfloat16_t op1, svbfloat16_t op2) {
-  // expected-warning at +1 {{implicit declaration of function 'svzip1q_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svzip1q_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svzip1q, _bf16, , )(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c
index 843133a13d1cb..6fa93b56d1d3c 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,6 +28,6 @@
 //
 svbfloat16_t test_svzip2_bf16(svbfloat16_t op1, svbfloat16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svzip2_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svzip2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svzip2,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c
index c6a87f3705472..1f97bad0caa65 100644
--- a/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve-intrinsics/acle_sve_zip2-fp64-bfloat.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -target-feature +f64mm -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -target-feature +f64mm -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -27,6 +27,6 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svzip2_bf16(svbfloat16_t op1, svbfloat16_t op2) {
-  // expected-warning at +1 {{implicit declaration of function 'svzip2q_bf16'}}
+  // expected-warning at +1 {{call to undeclared function 'svzip2q_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svzip2q, _bf16, , )(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c
index 84182ea3cdcdf..8a1b90bba1287 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aba.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svaba_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svaba_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svaba_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svaba_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svaba_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svaba_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svaba_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svaba_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svaba_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svaba_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svaba_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svaba_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svaba_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svaba_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svaba_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_svaba_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svaba_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_svaba_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svaba_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_svaba_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svaba_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svaba_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svaba_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_svaba_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svaba_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_svaba_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_svaba_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_svaba_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_svaba_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_svaba_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svaba_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaba'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaba_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaba'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaba_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaba,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c
index fa4c48c13276a..0ab156e7899da 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svabalb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svabalb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svabalb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svabalb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svabalb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svabalb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svabalb_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svabalb_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint32_t test_svabalb_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svabalb_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint64_t test_svabalb_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svabalb_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svint16_t test_svabalb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svabalb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svabalb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svabalb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svabalb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svabalb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svuint16_t test_svabalb_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svabalb_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint32_t test_svabalb_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svabalb_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint64_t test_svabalb_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalb,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c
index 97768a426f743..8768fbf104b89 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abalt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svabalt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svabalt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svabalt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svabalt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svabalt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svabalt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svabalt_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svabalt_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint32_t test_svabalt_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svabalt_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint64_t test_svabalt_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svabalt_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svint16_t test_svabalt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svabalt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svabalt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svabalt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svabalt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svabalt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svuint16_t test_svabalt_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svabalt_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint32_t test_svabalt_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svabalt_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint64_t test_svabalt_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabalt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabalt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabalt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c
index 9feafb121acc0..c6556565939de 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svabdlb_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svabdlb_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svabdlb_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svabdlb_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svabdlb_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svabdlb_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svabdlb_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svabdlb_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svabdlb_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svabdlb_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svabdlb_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svabdlb_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svabdlb_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svabdlb_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svabdlb_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svabdlb_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svabdlb_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svabdlb_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svabdlb_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svabdlb_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svabdlb_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svabdlb_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svabdlb_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c
index eefb63ef31016..55a9fc1ee8bec 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_abdlt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svabdlt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svabdlt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svabdlt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svabdlt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svabdlt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svabdlt_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svabdlt_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svabdlt_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svabdlt_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svabdlt_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svabdlt_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svabdlt_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svabdlt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svabdlt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svabdlt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svabdlt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svabdlt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svabdlt_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svabdlt_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svabdlt_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svabdlt_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svabdlt_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svabdlt_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svabdlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svabdlt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svabdlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svabdlt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svabdlt,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c
index 276fe546524d7..3dc174cb95506 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adalp.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -33,8 +33,8 @@
 //
 svint16_t test_svadalp_s16_z(svbool_t pg, svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s16,_z,)(pg, op1, op2);
 }
 
@@ -54,8 +54,8 @@ svint16_t test_svadalp_s16_z(svbool_t pg, svint16_t op1, svint8_t op2)
 //
 svint32_t test_svadalp_s32_z(svbool_t pg, svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s32,_z,)(pg, op1, op2);
 }
 
@@ -75,8 +75,8 @@ svint32_t test_svadalp_s32_z(svbool_t pg, svint32_t op1, svint16_t op2)
 //
 svint64_t test_svadalp_s64_z(svbool_t pg, svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s64,_z,)(pg, op1, op2);
 }
 
@@ -96,8 +96,8 @@ svint64_t test_svadalp_s64_z(svbool_t pg, svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svadalp_u16_z(svbool_t pg, svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u16,_z,)(pg, op1, op2);
 }
 
@@ -117,8 +117,8 @@ svuint16_t test_svadalp_u16_z(svbool_t pg, svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svadalp_u32_z(svbool_t pg, svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u32,_z,)(pg, op1, op2);
 }
 
@@ -138,8 +138,8 @@ svuint32_t test_svadalp_u32_z(svbool_t pg, svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svadalp_u64_z(svbool_t pg, svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u64,_z,)(pg, op1, op2);
 }
 
@@ -157,8 +157,8 @@ svuint64_t test_svadalp_u64_z(svbool_t pg, svuint64_t op1, svuint32_t op2)
 //
 svint16_t test_svadalp_s16_m(svbool_t pg, svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s16,_m,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svint16_t test_svadalp_s16_m(svbool_t pg, svint16_t op1, svint8_t op2)
 //
 svint32_t test_svadalp_s32_m(svbool_t pg, svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s32,_m,)(pg, op1, op2);
 }
 
@@ -195,8 +195,8 @@ svint32_t test_svadalp_s32_m(svbool_t pg, svint32_t op1, svint16_t op2)
 //
 svint64_t test_svadalp_s64_m(svbool_t pg, svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s64,_m,)(pg, op1, op2);
 }
 
@@ -214,8 +214,8 @@ svint64_t test_svadalp_s64_m(svbool_t pg, svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svadalp_u16_m(svbool_t pg, svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u16,_m,)(pg, op1, op2);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svadalp_u16_m(svbool_t pg, svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svadalp_u32_m(svbool_t pg, svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u32,_m,)(pg, op1, op2);
 }
 
@@ -252,8 +252,8 @@ svuint32_t test_svadalp_u32_m(svbool_t pg, svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svadalp_u64_m(svbool_t pg, svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u64,_m,)(pg, op1, op2);
 }
 
@@ -271,8 +271,8 @@ svuint64_t test_svadalp_u64_m(svbool_t pg, svuint64_t op1, svuint32_t op2)
 //
 svint16_t test_svadalp_s16_x(svbool_t pg, svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s16,_x,)(pg, op1, op2);
 }
 
@@ -290,8 +290,8 @@ svint16_t test_svadalp_s16_x(svbool_t pg, svint16_t op1, svint8_t op2)
 //
 svint32_t test_svadalp_s32_x(svbool_t pg, svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s32,_x,)(pg, op1, op2);
 }
 
@@ -309,8 +309,8 @@ svint32_t test_svadalp_s32_x(svbool_t pg, svint32_t op1, svint16_t op2)
 //
 svint64_t test_svadalp_s64_x(svbool_t pg, svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_s64,_x,)(pg, op1, op2);
 }
 
@@ -328,8 +328,8 @@ svint64_t test_svadalp_s64_x(svbool_t pg, svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svadalp_u16_x(svbool_t pg, svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u16,_x,)(pg, op1, op2);
 }
 
@@ -347,8 +347,8 @@ svuint16_t test_svadalp_u16_x(svbool_t pg, svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svadalp_u32_x(svbool_t pg, svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u32,_x,)(pg, op1, op2);
 }
 
@@ -366,7 +366,7 @@ svuint32_t test_svadalp_u32_x(svbool_t pg, svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svadalp_u64_x(svbool_t pg, svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadalp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadalp_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svadalp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadalp_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadalp,_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c
index 49818c8969cdc..14252cc2982d1 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint32_t test_svadclb_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclb,_u32,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svuint32_t test_svadclb_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svadclb_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclb,_u64,,)(op1, op2, op3);
 }
 
@@ -67,8 +67,8 @@ svuint64_t test_svadclb_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint32_t test_svadclb_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclb,_n_u32,,)(op1, op2, op3);
 }
 
@@ -88,7 +88,7 @@ svuint32_t test_svadclb_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svadclb_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclb,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c
index 88fd15a013420..194a2249b067d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_adclt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint32_t test_svadclt_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclt,_u32,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svuint32_t test_svadclt_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svadclt_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclt,_u64,,)(op1, op2, op3);
 }
 
@@ -67,8 +67,8 @@ svuint64_t test_svadclt_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint32_t test_svadclt_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -88,7 +88,7 @@ svuint32_t test_svadclt_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svadclt_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svadclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svadclt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svadclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svadclt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svadclt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c
index 4a094a0a0744b..157ddd4f93992 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svaddhnb_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svaddhnb_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svaddhnb_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svaddhnb_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svaddhnb_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svaddhnb_s64(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svaddhnb_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svaddhnb_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svaddhnb_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svaddhnb_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svaddhnb_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svaddhnb_u64(svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svaddhnb_n_s16(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svaddhnb_n_s16(svint16_t op1, int16_t op2)
 //
 svint16_t test_svaddhnb_n_s32(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svaddhnb_n_s32(svint32_t op1, int32_t op2)
 //
 svint32_t test_svaddhnb_n_s64(svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svaddhnb_n_s64(svint64_t op1, int64_t op2)
 //
 svuint8_t test_svaddhnb_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svaddhnb_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint16_t test_svaddhnb_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svaddhnb_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint32_t test_svaddhnb_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c
index 199154392a22e..e1b9b017a7ae3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addhnt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svaddhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svaddhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svaddhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svaddhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svaddhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svaddhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svaddhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svaddhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svaddhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svaddhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svaddhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svaddhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svaddhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svaddhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 //
 svint16_t test_svaddhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svaddhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svaddhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svaddhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svaddhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svaddhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint16_t test_svaddhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svaddhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint32_t test_svaddhnt_n_u64(svuint32_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddhnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddhnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddhnt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c
index 0b8a6a2a07696..5697fb9706c14 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svaddlb_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svaddlb_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svaddlb_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svaddlb_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svaddlb_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svaddlb_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svaddlb_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svaddlb_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svaddlb_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svaddlb_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svaddlb_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svaddlb_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svaddlb_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svaddlb_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svaddlb_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svaddlb_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svaddlb_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svaddlb_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svaddlb_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svaddlb_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svaddlb_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svaddlb_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svaddlb_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c
index 9a23bac727c52..8ab3a342c98e2 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlbt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svaddlbt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlbt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlbt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlbt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svaddlbt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svaddlbt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlbt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlbt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlbt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svaddlbt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svaddlbt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlbt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlbt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlbt,_s64,,)(op1, op2);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svaddlbt_s64(svint32_t op1, svint32_t op2)
 //
 svint16_t test_svaddlbt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlbt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlbt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlbt,_n_s16,,)(op1, op2);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svaddlbt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svaddlbt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlbt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlbt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlbt,_n_s32,,)(op1, op2);
 }
 
@@ -126,7 +126,7 @@ svint32_t test_svaddlbt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svaddlbt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlbt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlbt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlbt,_n_s64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c
index 2525010cd5c41..2cdb416e3cc3f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addlt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svaddlt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svaddlt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svaddlt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svaddlt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svaddlt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svaddlt_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svaddlt_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svaddlt_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svaddlt_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svaddlt_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svaddlt_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svaddlt_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svaddlt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svaddlt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svaddlt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svaddlt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svaddlt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svaddlt_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svaddlt_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svaddlt_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svaddlt_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svaddlt_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svaddlt_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddlt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddlt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddlt,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c
index 5ec55fb1d0fb8..1d0bf104d96ab 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addp.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svaddp_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s8,_m,)(pg, op1, op2);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svaddp_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svaddp_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svaddp_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svaddp_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svaddp_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svaddp_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s64,_m,)(pg, op1, op2);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svaddp_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svaddp_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u8,_m,)(pg, op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svaddp_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svaddp_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u16,_m,)(pg, op1, op2);
 }
 
@@ -141,8 +141,8 @@ svuint16_t test_svaddp_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svaddp_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u32,_m,)(pg, op1, op2);
 }
 
@@ -160,8 +160,8 @@ svuint32_t test_svaddp_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svaddp_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u64,_m,)(pg, op1, op2);
 }
 
@@ -177,8 +177,8 @@ svuint64_t test_svaddp_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svaddp_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s8,_x,)(pg, op1, op2);
 }
 
@@ -196,8 +196,8 @@ svint8_t test_svaddp_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svaddp_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s16,_x,)(pg, op1, op2);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svaddp_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svaddp_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s32,_x,)(pg, op1, op2);
 }
 
@@ -234,8 +234,8 @@ svint32_t test_svaddp_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svaddp_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_s64,_x,)(pg, op1, op2);
 }
 
@@ -251,8 +251,8 @@ svint64_t test_svaddp_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svaddp_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u8,_x,)(pg, op1, op2);
 }
 
@@ -270,8 +270,8 @@ svuint8_t test_svaddp_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svaddp_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u16,_x,)(pg, op1, op2);
 }
 
@@ -289,8 +289,8 @@ svuint16_t test_svaddp_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svaddp_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u32,_x,)(pg, op1, op2);
 }
 
@@ -308,8 +308,8 @@ svuint32_t test_svaddp_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svaddp_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_u64,_x,)(pg, op1, op2);
 }
 
@@ -327,8 +327,8 @@ svuint64_t test_svaddp_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svfloat16_t test_svaddp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_f16,_m,)(pg, op1, op2);
 }
 
@@ -346,8 +346,8 @@ svfloat16_t test_svaddp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svaddp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_f32,_m,)(pg, op1, op2);
 }
 
@@ -365,8 +365,8 @@ svfloat32_t test_svaddp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svaddp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_f64,_m,)(pg, op1, op2);
 }
 
@@ -384,8 +384,8 @@ svfloat64_t test_svaddp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 //
 svfloat16_t test_svaddp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_f16,_x,)(pg, op1, op2);
 }
 
@@ -403,8 +403,8 @@ svfloat16_t test_svaddp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svaddp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_f32,_x,)(pg, op1, op2);
 }
 
@@ -422,7 +422,7 @@ svfloat32_t test_svaddp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svaddp_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddp_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddp_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddp,_f64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c
index 84d05040a8309..92fd33d77b599 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svaddwb_s16(svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svaddwb_s16(svint16_t op1, svint8_t op2)
 //
 svint32_t test_svaddwb_s32(svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svaddwb_s32(svint32_t op1, svint16_t op2)
 //
 svint64_t test_svaddwb_s64(svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svaddwb_s64(svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svaddwb_u16(svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svaddwb_u16(svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svaddwb_u32(svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svaddwb_u32(svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svaddwb_u64(svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svaddwb_u64(svuint64_t op1, svuint32_t op2)
 //
 svint16_t test_svaddwb_n_s16(svint16_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svaddwb_n_s16(svint16_t op1, int8_t op2)
 //
 svint32_t test_svaddwb_n_s32(svint32_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svaddwb_n_s32(svint32_t op1, int16_t op2)
 //
 svint64_t test_svaddwb_n_s64(svint64_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svaddwb_n_s64(svint64_t op1, int32_t op2)
 //
 svuint16_t test_svaddwb_n_u16(svuint16_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svaddwb_n_u16(svuint16_t op1, uint8_t op2)
 //
 svuint32_t test_svaddwb_n_u32(svuint32_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svaddwb_n_u32(svuint32_t op1, uint16_t op2)
 //
 svuint64_t test_svaddwb_n_u64(svuint64_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c
index e883b258d348c..a798e6846b340 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_addwt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svaddwt_s16(svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svaddwt_s16(svint16_t op1, svint8_t op2)
 //
 svint32_t test_svaddwt_s32(svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svaddwt_s32(svint32_t op1, svint16_t op2)
 //
 svint64_t test_svaddwt_s64(svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svaddwt_s64(svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svaddwt_u16(svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svaddwt_u16(svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svaddwt_u32(svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svaddwt_u32(svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svaddwt_u64(svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svaddwt_u64(svuint64_t op1, svuint32_t op2)
 //
 svint16_t test_svaddwt_n_s16(svint16_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svaddwt_n_s16(svint16_t op1, int8_t op2)
 //
 svint32_t test_svaddwt_n_s32(svint32_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svaddwt_n_s32(svint32_t op1, int16_t op2)
 //
 svint64_t test_svaddwt_n_s64(svint64_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svaddwt_n_s64(svint64_t op1, int32_t op2)
 //
 svuint16_t test_svaddwt_n_u16(svuint16_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svaddwt_n_u16(svuint16_t op1, uint8_t op2)
 //
 svuint32_t test_svaddwt_n_u32(svuint32_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svaddwt_n_u32(svuint32_t op1, uint16_t op2)
 //
 svuint64_t test_svaddwt_n_u64(svuint64_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaddwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaddwt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svaddwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaddwt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaddwt,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c
index 428e86d88a2db..49324e2267801 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesd.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svuint8_t test_svaesd_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaesd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaesd_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaesd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaesd_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaesd,_u8,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c
index 4397badc6d823..c8684810d59fb 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aese.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svuint8_t test_svaese_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaese'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaese_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaese'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaese_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaese,_u8,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c
index c8c24f88a36d1..0b2e88bb214c2 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesimc.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svuint8_t test_svaesimc_u8(svuint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaesimc'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaesimc_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaesimc'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaesimc_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaesimc,_u8,,)(op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c
index 7566fc0be48b8..fbeccacb2622f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_aesmc.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svuint8_t test_svaesmc_u8(svuint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svaesmc'}}
-  // expected-warning at +1 {{implicit declaration of function 'svaesmc_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svaesmc'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svaesmc_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svaesmc,_u8,,)(op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c
index 8ac88a9c6f208..8382dbb036961 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bcax.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svbcax_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svbcax_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svbcax_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svbcax_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svbcax_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svbcax_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svbcax_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svbcax_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svbcax_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svbcax_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svbcax_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svbcax_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svbcax_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svbcax_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svbcax_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_svbcax_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svbcax_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_svbcax_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svbcax_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_svbcax_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svbcax_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svbcax_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svbcax_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_svbcax_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svbcax_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_svbcax_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_svbcax_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_svbcax_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_svbcax_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_svbcax_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svbcax_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbcax'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbcax_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbcax'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbcax_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbcax,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c
index 6097d4a991de5..6b71d8b22b4b3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bdep.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svbdep_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_u8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svbdep_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svbdep_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_u16,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svuint16_t test_svbdep_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svbdep_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_u32,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svuint32_t test_svbdep_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svbdep_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_u64,,)(op1, op2);
 }
 
@@ -101,8 +101,8 @@ svuint64_t test_svbdep_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint8_t test_svbdep_n_u8(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_n_u8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svbdep_n_u8(svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svbdep_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_n_u16,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svuint16_t test_svbdep_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svbdep_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_n_u32,,)(op1, op2);
 }
 
@@ -164,7 +164,7 @@ svuint32_t test_svbdep_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svbdep_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbdep'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbdep_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbdep'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbdep_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbdep,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c
index 66267092139c7..43a773fdf9a04 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bext.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svbext_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_u8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svbext_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svbext_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_u16,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svuint16_t test_svbext_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svbext_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_u32,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svuint32_t test_svbext_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svbext_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_u64,,)(op1, op2);
 }
 
@@ -101,8 +101,8 @@ svuint64_t test_svbext_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint8_t test_svbext_n_u8(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_n_u8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svbext_n_u8(svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svbext_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_n_u16,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svuint16_t test_svbext_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svbext_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_n_u32,,)(op1, op2);
 }
 
@@ -164,7 +164,7 @@ svuint32_t test_svbext_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svbext_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbext'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbext_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbext'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbext_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbext,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c
index 153b228472716..d57115ced66cf 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bgrp.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-bitperm -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svbgrp_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_u8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svbgrp_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svbgrp_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_u16,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svuint16_t test_svbgrp_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svbgrp_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_u32,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svuint32_t test_svbgrp_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svbgrp_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_u64,,)(op1, op2);
 }
 
@@ -101,8 +101,8 @@ svuint64_t test_svbgrp_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint8_t test_svbgrp_n_u8(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_n_u8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svbgrp_n_u8(svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svbgrp_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_n_u16,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svuint16_t test_svbgrp_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svbgrp_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_n_u32,,)(op1, op2);
 }
 
@@ -164,7 +164,7 @@ svuint32_t test_svbgrp_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svbgrp_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbgrp'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbgrp_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbgrp'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbgrp_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbgrp,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c
index 2595c595aff33..b22ae705046f6 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svbsl_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svbsl_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svbsl_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svbsl_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svbsl_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svbsl_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svbsl_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svbsl_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svbsl_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svbsl_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svbsl_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svbsl_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svbsl_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svbsl_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svbsl_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_svbsl_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svbsl_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_svbsl_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svbsl_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_svbsl_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svbsl_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svbsl_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svbsl_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_svbsl_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svbsl_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_svbsl_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_svbsl_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_svbsl_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_svbsl_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_svbsl_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svbsl_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c
index 10b8627b2e436..dbb77a4d82c4e 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl1n.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svbsl1n_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svbsl1n_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svbsl1n_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svbsl1n_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svbsl1n_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svbsl1n_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svbsl1n_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svbsl1n_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svbsl1n_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svbsl1n_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svbsl1n_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svbsl1n_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svbsl1n_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svbsl1n_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svbsl1n_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_svbsl1n_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svbsl1n_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_svbsl1n_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svbsl1n_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_svbsl1n_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svbsl1n_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svbsl1n_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svbsl1n_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_svbsl1n_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svbsl1n_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_svbsl1n_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_svbsl1n_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_svbsl1n_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_svbsl1n_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_svbsl1n_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svbsl1n_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl1n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl1n_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl1n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl1n_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl1n,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c
index ad93816eb7ddb..d6d2a19dc6d50 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_bsl2n.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svbsl2n_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svbsl2n_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svbsl2n_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svbsl2n_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svbsl2n_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svbsl2n_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svbsl2n_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svbsl2n_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svbsl2n_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svbsl2n_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svbsl2n_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svbsl2n_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svbsl2n_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svbsl2n_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svbsl2n_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_svbsl2n_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svbsl2n_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_svbsl2n_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svbsl2n_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_svbsl2n_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svbsl2n_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svbsl2n_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svbsl2n_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_svbsl2n_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svbsl2n_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_svbsl2n_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_svbsl2n_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_svbsl2n_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_svbsl2n_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_svbsl2n_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svbsl2n_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svbsl2n'}}
-  // expected-warning at +1 {{implicit declaration of function 'svbsl2n_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svbsl2n'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svbsl2n_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svbsl2n,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c
index c92c8bb01962e..d69200f249706 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cadd.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svcadd_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 90);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svcadd_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svcadd_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s8,,)(op1, op2, 270);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svcadd_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svcadd_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s16,,)(op1, op2, 90);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svcadd_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svcadd_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s16,,)(op1, op2, 270);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svcadd_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svcadd_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s32,,)(op1, op2, 90);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svcadd_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svcadd_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s32,,)(op1, op2, 270);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svcadd_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svcadd_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s64,,)(op1, op2, 90);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svcadd_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svcadd_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_s64,,)(op1, op2, 270);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svcadd_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svcadd_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u8,,)(op1, op2, 90);
 }
 
@@ -182,8 +182,8 @@ svuint8_t test_svcadd_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svcadd_u8_1(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u8,,)(op1, op2, 270);
 }
 
@@ -199,8 +199,8 @@ svuint8_t test_svcadd_u8_1(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svcadd_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u16,,)(op1, op2, 90);
 }
 
@@ -216,8 +216,8 @@ svuint16_t test_svcadd_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svcadd_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u16,,)(op1, op2, 270);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svcadd_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svcadd_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u32,,)(op1, op2, 90);
 }
 
@@ -250,8 +250,8 @@ svuint32_t test_svcadd_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svcadd_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u32,,)(op1, op2, 270);
 }
 
@@ -267,8 +267,8 @@ svuint32_t test_svcadd_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svcadd_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u64,,)(op1, op2, 90);
 }
 
@@ -284,7 +284,7 @@ svuint64_t test_svcadd_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svcadd_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcadd_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcadd_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcadd,_u64,,)(op1, op2, 270);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c
index 30cab67115314..113411d76b046 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cdot.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint32_t test_svcdot_s32(svint32_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -46,8 +46,8 @@ svint32_t test_svcdot_s32(svint32_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svcdot_s32_1(svint32_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s32,,)(op1, op2, op3, 90);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svcdot_s32_1(svint32_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svcdot_s32_2(svint32_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s32,,)(op1, op2, op3, 180);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svcdot_s32_2(svint32_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svcdot_s32_3(svint32_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s32,,)(op1, op2, op3, 270);
 }
 
@@ -97,8 +97,8 @@ svint32_t test_svcdot_s32_3(svint32_t op1, svint8_t op2, svint8_t op3)
 //
 svint64_t test_svcdot_s64(svint64_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -114,8 +114,8 @@ svint64_t test_svcdot_s64(svint64_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svcdot_s64_1(svint64_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s64,,)(op1, op2, op3, 90);
 }
 
@@ -131,8 +131,8 @@ svint64_t test_svcdot_s64_1(svint64_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svcdot_s64_2(svint64_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s64,,)(op1, op2, op3, 180);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svcdot_s64_2(svint64_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svcdot_s64_3(svint64_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot,_s64,,)(op1, op2, op3, 270);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svcdot_s64_3(svint64_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svcdot_lane_s32(svint32_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot_lane,_s32,,)(op1, op2, op3, 0, 0);
 }
 
@@ -182,8 +182,8 @@ svint32_t test_svcdot_lane_s32(svint32_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svcdot_lane_s32_1(svint32_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot_lane,_s32,,)(op1, op2, op3, 2, 90);
 }
 
@@ -199,7 +199,7 @@ svint32_t test_svcdot_lane_s32_1(svint32_t op1, svint8_t op2, svint8_t op3)
 //
 svint64_t test_svcdot_lane_s64(svint64_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcdot_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcdot_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svcdot_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcdot_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcdot_lane,_s64,,)(op1, op2, op3, 0, 180);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c
index 6da5cb8ff333c..9342805232a49 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cmla.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svint8_t test_svcmla_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 0);
 }
 
@@ -44,7 +44,7 @@ svint8_t test_svcmla_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint8_t test_svcmla_s8_1(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 90);
 }
 
@@ -60,7 +60,7 @@ svint8_t test_svcmla_s8_1(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint8_t test_svcmla_s8_2(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 180);
 }
 
@@ -76,7 +76,7 @@ svint8_t test_svcmla_s8_2(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint8_t test_svcmla_s8_3(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s8,,)(op1, op2, op3, 270);
 }
 
@@ -92,7 +92,7 @@ svint8_t test_svcmla_s8_3(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svcmla_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s16,,)(op1, op2, op3, 0);
 }
 
@@ -108,7 +108,7 @@ svint16_t test_svcmla_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svcmla_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s16,,)(op1, op2, op3, 90);
 }
 
@@ -124,7 +124,7 @@ svint16_t test_svcmla_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svcmla_s16_2(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s16,,)(op1, op2, op3, 180);
 }
 
@@ -140,7 +140,7 @@ svint16_t test_svcmla_s16_2(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svcmla_s16_3(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s16,,)(op1, op2, op3, 270);
 }
 
@@ -156,7 +156,7 @@ svint16_t test_svcmla_s16_3(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svcmla_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -172,7 +172,7 @@ svint32_t test_svcmla_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svcmla_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s32,,)(op1, op2, op3, 90);
 }
 
@@ -188,7 +188,7 @@ svint32_t test_svcmla_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svcmla_s32_2(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s32,,)(op1, op2, op3, 180);
 }
 
@@ -204,7 +204,7 @@ svint32_t test_svcmla_s32_2(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svcmla_s32_3(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s32,,)(op1, op2, op3, 270);
 }
 
@@ -220,7 +220,7 @@ svint32_t test_svcmla_s32_3(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svcmla_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -236,7 +236,7 @@ svint64_t test_svcmla_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svcmla_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s64,,)(op1, op2, op3, 90);
 }
 
@@ -252,7 +252,7 @@ svint64_t test_svcmla_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svcmla_s64_2(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s64,,)(op1, op2, op3, 180);
 }
 
@@ -268,7 +268,7 @@ svint64_t test_svcmla_s64_2(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svcmla_s64_3(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_s64,,)(op1, op2, op3, 270);
 }
 
@@ -284,7 +284,7 @@ svint64_t test_svcmla_s64_3(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svcmla_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u8,,)(op1, op2, op3, 0);
 }
 
@@ -300,7 +300,7 @@ svuint8_t test_svcmla_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint8_t test_svcmla_u8_1(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u8,,)(op1, op2, op3, 90);
 }
 
@@ -316,7 +316,7 @@ svuint8_t test_svcmla_u8_1(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint8_t test_svcmla_u8_2(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u8,,)(op1, op2, op3, 180);
 }
 
@@ -332,7 +332,7 @@ svuint8_t test_svcmla_u8_2(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint8_t test_svcmla_u8_3(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u8'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u8,,)(op1, op2, op3, 270);
 }
 
@@ -348,7 +348,7 @@ svuint8_t test_svcmla_u8_3(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svcmla_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u16,,)(op1, op2, op3, 0);
 }
 
@@ -364,7 +364,7 @@ svuint16_t test_svcmla_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svcmla_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u16,,)(op1, op2, op3, 90);
 }
 
@@ -380,7 +380,7 @@ svuint16_t test_svcmla_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svcmla_u16_2(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u16,,)(op1, op2, op3, 180);
 }
 
@@ -396,7 +396,7 @@ svuint16_t test_svcmla_u16_2(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svcmla_u16_3(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u16,,)(op1, op2, op3, 270);
 }
 
@@ -412,7 +412,7 @@ svuint16_t test_svcmla_u16_3(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svcmla_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u32,,)(op1, op2, op3, 0);
 }
 
@@ -428,7 +428,7 @@ svuint32_t test_svcmla_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svcmla_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u32,,)(op1, op2, op3, 90);
 }
 
@@ -444,7 +444,7 @@ svuint32_t test_svcmla_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svcmla_u32_2(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u32,,)(op1, op2, op3, 180);
 }
 
@@ -460,7 +460,7 @@ svuint32_t test_svcmla_u32_2(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svcmla_u32_3(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u32,,)(op1, op2, op3, 270);
 }
 
@@ -476,7 +476,7 @@ svuint32_t test_svcmla_u32_3(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svcmla_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -492,7 +492,7 @@ svuint64_t test_svcmla_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint64_t test_svcmla_u64_1(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u64,,)(op1, op2, op3, 90);
 }
 
@@ -508,7 +508,7 @@ svuint64_t test_svcmla_u64_1(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint64_t test_svcmla_u64_2(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u64,,)(op1, op2, op3, 180);
 }
 
@@ -524,7 +524,7 @@ svuint64_t test_svcmla_u64_2(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint64_t test_svcmla_u64_3(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla,_u64,,)(op1, op2, op3, 270);
 }
 
@@ -540,7 +540,7 @@ svuint64_t test_svcmla_u64_3(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint16_t test_svcmla_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 0, 90);
 }
 
@@ -556,7 +556,7 @@ svint16_t test_svcmla_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svcmla_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_s16,,)(op1, op2, op3, 3, 180);
 }
 
@@ -572,7 +572,7 @@ svint16_t test_svcmla_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svcmla_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_s32,,)(op1, op2, op3, 0, 270);
 }
 
@@ -588,7 +588,7 @@ svint32_t test_svcmla_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svcmla_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_s32,,)(op1, op2, op3, 1, 0);
 }
 
@@ -604,7 +604,7 @@ svint32_t test_svcmla_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svcmla_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_u16,,)(op1, op2, op3, 0, 90);
 }
 
@@ -620,7 +620,7 @@ svuint16_t test_svcmla_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svcmla_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_u16,,)(op1, op2, op3, 3, 180);
 }
 
@@ -636,7 +636,7 @@ svuint16_t test_svcmla_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3
 //
 svuint32_t test_svcmla_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_u32,,)(op1, op2, op3, 0, 270);
 }
 
@@ -652,6 +652,6 @@ svuint32_t test_svcmla_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svcmla_lane_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svcmla_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svcmla_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcmla_lane,_u32,,)(op1, op2, op3, 1, 0);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c
index 3f9afbe94a90a..96b91aa9f8785 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtlt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svfloat32_t test_svcvtlt_f32_f16_m(svfloat32_t inactive, svbool_t pg, svfloat16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtlt_f32_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtlt_f32_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtlt_f32_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtlt_f32_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtlt_f32,_f16,_m,)(inactive, pg, op);
 }
 
@@ -50,8 +50,8 @@ svfloat32_t test_svcvtlt_f32_f16_m(svfloat32_t inactive, svbool_t pg, svfloat16_
 //
 svfloat64_t test_svcvtlt_f64_f32_m(svfloat64_t inactive, svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtlt_f64_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtlt_f64_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtlt_f64_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtlt_f64_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtlt_f64,_f32,_m,)(inactive, pg, op);
 }
 
@@ -69,8 +69,8 @@ svfloat64_t test_svcvtlt_f64_f32_m(svfloat64_t inactive, svbool_t pg, svfloat32_
 //
 svfloat32_t test_svcvtlt_f32_f16_x(svbool_t pg, svfloat16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtlt_f32_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtlt_f32_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtlt_f32_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtlt_f32_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtlt_f32,_f16,_x,)(pg, op);
 }
 
@@ -88,7 +88,7 @@ svfloat32_t test_svcvtlt_f32_f16_x(svbool_t pg, svfloat16_t op)
 //
 svfloat64_t test_svcvtlt_f64_f32_x(svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtlt_f64_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtlt_f64_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtlt_f64_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtlt_f64_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtlt_f64,_f32,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c
index 977cac373e1bb..be45f32cf6406 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svfloat16_t test_svcvtnt_f16_f32_m(svfloat16_t inactive, svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtnt_f16_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtnt_f16_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtnt_f16_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtnt_f16_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtnt_f16,_f32,_m,)(inactive, pg, op);
 }
 
@@ -50,8 +50,8 @@ svfloat16_t test_svcvtnt_f16_f32_m(svfloat16_t inactive, svbool_t pg, svfloat32_
 //
 svfloat32_t test_svcvtnt_f32_f64_m(svfloat32_t inactive, svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtnt_f32_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtnt_f32_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtnt_f32_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtnt_f32_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtnt_f32,_f64,_m,)(inactive, pg, op);
 }
 
@@ -69,8 +69,8 @@ svfloat32_t test_svcvtnt_f32_f64_m(svfloat32_t inactive, svbool_t pg, svfloat64_
 //
 svfloat16_t test_svcvtnt_f16_f32_x(svfloat16_t even, svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtnt_f16_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtnt_f16_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtnt_f16_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtnt_f16_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtnt_f16,_f32,_x,)(even, pg, op);
 }
 
@@ -88,7 +88,7 @@ svfloat16_t test_svcvtnt_f16_f32_x(svfloat16_t even, svbool_t pg, svfloat32_t op
 //
 svfloat32_t test_svcvtnt_f32_f64_x(svfloat32_t even, svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtnt_f32_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtnt_f32_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtnt_f32_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtnt_f32_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtnt_f32,_f64,_x,)(even, pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c
index 58faa68f0debd..624bbb823d76f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtx.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svfloat32_t test_svcvtx_f32_f64_z(svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtx_f32_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtx_f32_f64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtx_f32_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtx_f32_f64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtx_f32,_f64,_z,)(pg, op);
 }
 
@@ -50,8 +50,8 @@ svfloat32_t test_svcvtx_f32_f64_z(svbool_t pg, svfloat64_t op)
 //
 svfloat32_t test_svcvtx_f32_f64_m(svfloat32_t inactive, svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtx_f32_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtx_f32_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtx_f32_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtx_f32_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtx_f32,_f64,_m,)(inactive, pg, op);
 }
 
@@ -69,7 +69,7 @@ svfloat32_t test_svcvtx_f32_f64_m(svfloat32_t inactive, svbool_t pg, svfloat64_t
 //
 svfloat32_t test_svcvtx_f32_f64_x(svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtx_f32_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtx_f32_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtx_f32_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtx_f32_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtx_f32,_f64,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c
index 88475a93fd64a..5172fbfd39708 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_cvtxnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svfloat32_t test_svcvtxnt_f32_f64_m(svfloat32_t inactive, svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtxnt_f32_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtxnt_f32_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtxnt_f32_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtxnt_f32_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtxnt_f32,_f64,_m,)(inactive, pg, op);
 }
 
@@ -50,7 +50,7 @@ svfloat32_t test_svcvtxnt_f32_f64_m(svfloat32_t inactive, svbool_t pg, svfloat64
 //
 svfloat32_t test_svcvtxnt_f32_f64_x(svfloat32_t even, svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svcvtxnt_f32_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svcvtxnt_f32_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svcvtxnt_f32_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svcvtxnt_f32_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svcvtxnt_f32,_f64,_x,)(even, pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c
index 32a0975188fbb..deec8eb62356c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eor3.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_sveor3_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_sveor3_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_sveor3_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_sveor3_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_sveor3_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_sveor3_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_sveor3_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_sveor3_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_sveor3_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_sveor3_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_sveor3_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_sveor3_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_sveor3_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_sveor3_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_sveor3_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_sveor3_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_sveor3_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_sveor3_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_sveor3_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_sveor3_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_sveor3_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_sveor3_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_sveor3_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_sveor3_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_sveor3_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_sveor3_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_sveor3_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_sveor3_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_sveor3_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_sveor3_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_sveor3_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveor3'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveor3_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveor3'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveor3_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveor3,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c
index 0100e2b356452..7d2d28a2e435c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eorbt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_sveorbt_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_sveorbt_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_sveorbt_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_sveorbt_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_sveorbt_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_sveorbt_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_sveorbt_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_sveorbt_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_sveorbt_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_sveorbt_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_sveorbt_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_sveorbt_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_sveorbt_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_sveorbt_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_sveorbt_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_sveorbt_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_sveorbt_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_sveorbt_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_sveorbt_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_sveorbt_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_sveorbt_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_sveorbt_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_sveorbt_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_sveorbt_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_sveorbt_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_sveorbt_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_sveorbt_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_sveorbt_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_sveorbt_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_sveorbt_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_sveorbt_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveorbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveorbt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveorbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveorbt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveorbt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c
index a88e481a90875..f47006847f495 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_eortb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_sveortb_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_sveortb_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_sveortb_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_sveortb_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_sveortb_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_sveortb_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_sveortb_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_sveortb_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_sveortb_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_sveortb_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_sveortb_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_sveortb_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_sveortb_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_sveortb_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_sveortb_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_sveortb_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_sveortb_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_sveortb_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_sveortb_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_sveortb_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_sveortb_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_sveortb_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_sveortb_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_sveortb_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_sveortb_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_sveortb_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_sveortb_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_sveortb_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_sveortb_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_sveortb_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_sveortb_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'sveortb'}}
-  // expected-warning at +1 {{implicit declaration of function 'sveortb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'sveortb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'sveortb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(sveortb,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c
index 5a0575551d73f..a47a87c336e17 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hadd.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svhadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s8,_m,)(pg, op1, op2);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svhadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svhadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svhadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s64,_m,)(pg, op1, op2);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svhadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u8,_m,)(pg, op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svhadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u16,_m,)(pg, op1, op2);
 }
 
@@ -142,8 +142,8 @@ svuint16_t test_svhadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svhadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svhadd_u32_m
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u32,_m,)(pg, op1, op2);
 }
 
@@ -161,8 +161,8 @@ svuint32_t test_svhadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u64,_m,)(pg, op1, op2);
 }
 
@@ -182,8 +182,8 @@ svuint64_t test_svhadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -205,8 +205,8 @@ svint8_t test_svhadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -228,8 +228,8 @@ svint16_t test_svhadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -251,8 +251,8 @@ svint32_t test_svhadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -272,8 +272,8 @@ svint64_t test_svhadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -295,8 +295,8 @@ svuint8_t test_svhadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -318,8 +318,8 @@ svuint16_t test_svhadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint32_t test_svhadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svuint64_t test_svhadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svhadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s8,_z,)(pg, op1, op2);
 }
 
@@ -381,8 +381,8 @@ svint8_t test_svhadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s16,_z,)(pg, op1, op2);
 }
 
@@ -402,8 +402,8 @@ svint16_t test_svhadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s32,_z,)(pg, op1, op2);
 }
 
@@ -423,8 +423,8 @@ svint32_t test_svhadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s64,_z,)(pg, op1, op2);
 }
 
@@ -442,8 +442,8 @@ svint64_t test_svhadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u8,_z,)(pg, op1, op2);
 }
 
@@ -463,8 +463,8 @@ svuint8_t test_svhadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u16,_z,)(pg, op1, op2);
 }
 
@@ -485,8 +485,8 @@ svuint16_t test_svhadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svhadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svhadd_u32_z
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u32,_z,)(pg, op1, op2);
 }
 
@@ -506,8 +506,8 @@ svuint32_t test_svhadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u64,_z,)(pg, op1, op2);
 }
 
@@ -529,8 +529,8 @@ svuint64_t test_svhadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -554,8 +554,8 @@ svint8_t test_svhadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -579,8 +579,8 @@ svint16_t test_svhadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -604,8 +604,8 @@ svint32_t test_svhadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -627,8 +627,8 @@ svint64_t test_svhadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -652,8 +652,8 @@ svuint8_t test_svhadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -677,8 +677,8 @@ svuint16_t test_svhadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -702,8 +702,8 @@ svuint32_t test_svhadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -719,8 +719,8 @@ svuint64_t test_svhadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svhadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s8,_x,)(pg, op1, op2);
 }
 
@@ -738,8 +738,8 @@ svint8_t test_svhadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s16,_x,)(pg, op1, op2);
 }
 
@@ -757,8 +757,8 @@ svint16_t test_svhadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s32,_x,)(pg, op1, op2);
 }
 
@@ -776,8 +776,8 @@ svint32_t test_svhadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_s64,_x,)(pg, op1, op2);
 }
 
@@ -793,8 +793,8 @@ svint64_t test_svhadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u8,_x,)(pg, op1, op2);
 }
 
@@ -812,8 +812,8 @@ svuint8_t test_svhadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u16,_x,)(pg, op1, op2);
 }
 
@@ -832,8 +832,8 @@ svuint16_t test_svhadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svhadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svhadd_u32_x
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u32,_x,)(pg, op1, op2);
 }
 
@@ -851,8 +851,8 @@ svuint32_t test_svhadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_u64,_x,)(pg, op1, op2);
 }
 
@@ -872,8 +872,8 @@ svuint64_t test_svhadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -895,8 +895,8 @@ svint8_t test_svhadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -918,8 +918,8 @@ svint16_t test_svhadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -941,8 +941,8 @@ svint32_t test_svhadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -962,8 +962,8 @@ svint64_t test_svhadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -985,8 +985,8 @@ svuint8_t test_svhadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1008,8 +1008,8 @@ svuint16_t test_svhadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1031,7 +1031,7 @@ svuint32_t test_svhadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhadd_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhadd_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhadd_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhadd,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c
index b53f8c1f04bb8..93acb8da0ac22 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histcnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svuint32_t test_svhistcnt_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhistcnt_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhistcnt_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhistcnt_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhistcnt_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhistcnt,_s32,_z,)(pg, op1, op2);
 }
 
@@ -50,8 +50,8 @@ svuint32_t test_svhistcnt_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svuint64_t test_svhistcnt_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhistcnt_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhistcnt_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhistcnt_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhistcnt_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhistcnt,_s64,_z,)(pg, op1, op2);
 }
 
@@ -69,8 +69,8 @@ svuint64_t test_svhistcnt_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint32_t test_svhistcnt_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhistcnt_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhistcnt_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhistcnt_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhistcnt_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhistcnt,_u32,_z,)(pg, op1, op2);
 }
 
@@ -88,7 +88,7 @@ svuint32_t test_svhistcnt_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhistcnt_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhistcnt_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhistcnt_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhistcnt_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhistcnt_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhistcnt,_u64,_z,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c
index 8c05fc856dad2..01012f5f7c593 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_histseg.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svhistseg_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhistseg'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhistseg_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svhistseg'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhistseg_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhistseg,_s8,,)(op1, op2);
 }
 
@@ -46,7 +46,7 @@ svuint8_t test_svhistseg_s8(svint8_t op1, svint8_t op2)
 //
 svuint8_t test_svhistseg_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhistseg'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhistseg_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svhistseg'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhistseg_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhistseg,_u8,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c
index 01da3fac4ac11..4244bbbcec54c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsub.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svhsub_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svhsub_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhsub_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svhsub_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhsub_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svhsub_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhsub_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svhsub_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhsub_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svhsub_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhsub_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svhsub_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svhsub_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svhsub_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhsub_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svhsub_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhsub_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svhsub_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhsub_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svhsub_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhsub_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svhsub_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhsub_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svhsub_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhsub_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svhsub_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhsub_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svhsub_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svhsub_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svhsub_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhsub_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svhsub_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhsub_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svhsub_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhsub_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svhsub_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhsub_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svhsub_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhsub_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svhsub_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhsub_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svhsub_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhsub_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svhsub_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svhsub_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svhsub_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhsub_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svhsub_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhsub_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svhsub_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhsub_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svhsub_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhsub_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svhsub_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhsub_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svhsub_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhsub_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svhsub_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhsub_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svhsub_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhsub_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svhsub_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhsub_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svhsub_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svhsub_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svhsub_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhsub_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svhsub_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhsub_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svhsub_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhsub_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svhsub_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhsub_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svhsub_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhsub_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svhsub_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhsub_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svhsub_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhsub_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svhsub_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svhsub_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svhsub_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhsub_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svhsub_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhsub_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svhsub_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhsub_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svhsub_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhsub_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svhsub_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhsub_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svhsub_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhsub_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svhsub_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhsub_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsub_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsub_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsub,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c
index e8cb145239431..1139507b2bf88 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_hsubr.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svhsubr_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svhsubr_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhsubr_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svhsubr_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhsubr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svhsubr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhsubr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svhsubr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhsubr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svhsubr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhsubr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svhsubr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svhsubr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svhsubr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhsubr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svhsubr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhsubr_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svhsubr_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhsubr_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svhsubr_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhsubr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svhsubr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhsubr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svhsubr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhsubr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svhsubr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhsubr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svhsubr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svhsubr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svhsubr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhsubr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svhsubr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhsubr_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svhsubr_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svhsubr_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svhsubr_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svhsubr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svhsubr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svhsubr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svhsubr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svhsubr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svhsubr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svhsubr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svhsubr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svhsubr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svhsubr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svhsubr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svhsubr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svhsubr_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svhsubr_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhsubr_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svhsubr_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhsubr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svhsubr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhsubr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svhsubr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhsubr_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svhsubr_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhsubr_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svhsubr_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhsubr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svhsubr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhsubr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svhsubr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svhsubr_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svhsubr_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhsubr_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svhsubr_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhsubr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svhsubr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhsubr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svhsubr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhsubr_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svhsubr_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhsubr_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svhsubr_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhsubr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svhsubr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhsubr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svhsubr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svhsubr_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svhsubr_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svhsubr_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svhsubr_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svhsubr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svhsubr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svhsubr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svhsubr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svhsubr_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svhsubr_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svhsubr_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svhsubr_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svhsubr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svhsubr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svhsubr_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svhsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svhsubr_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svhsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svhsubr_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svhsubr,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c
index fd08a895ffc44..a1de325ea7527 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -30,8 +30,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP1]]
 //
 svint32_t test_svldnt1_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _s32, )(pg, bases);
 }
 
@@ -48,8 +48,8 @@ svint32_t test_svldnt1_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svint64_t test_svldnt1_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -66,8 +66,8 @@ svint64_t test_svldnt1_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP1]]
 //
 svuint32_t test_svldnt1_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _u32, )(pg, bases);
 }
 
@@ -84,8 +84,8 @@ svuint32_t test_svldnt1_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svuint64_t test_svldnt1_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -102,8 +102,8 @@ svuint64_t test_svldnt1_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
 //
 svfloat32_t test_svldnt1_gather_u32base_f32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_f32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_f32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _f32, )(pg, bases);
 }
 
@@ -120,8 +120,8 @@ svfloat32_t test_svldnt1_gather_u32base_f32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
 //
 svfloat64_t test_svldnt1_gather_u64base_f64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_f64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_f64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _f64, )(pg, bases);
 }
 
@@ -138,8 +138,8 @@ svfloat64_t test_svldnt1_gather_u64base_f64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svint64_t test_svldnt1_gather_s64offset_s64(svbool_t pg, const int64_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, s64, offset, _s64)(pg, base, offsets);
 }
 
@@ -156,8 +156,8 @@ svint64_t test_svldnt1_gather_s64offset_s64(svbool_t pg, const int64_t *base, sv
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svuint64_t test_svldnt1_gather_s64offset_u64(svbool_t pg, const uint64_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, s64, offset, _u64)(pg, base, offsets);
 }
 
@@ -174,8 +174,8 @@ svuint64_t test_svldnt1_gather_s64offset_u64(svbool_t pg, const uint64_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
 //
 svfloat64_t test_svldnt1_gather_s64offset_f64(svbool_t pg, const float64_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_s64offset_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_s64offset_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, s64, offset, _f64)(pg, base, offsets);
 }
 
@@ -192,8 +192,8 @@ svfloat64_t test_svldnt1_gather_s64offset_f64(svbool_t pg, const float64_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP1]]
 //
 svint32_t test_svldnt1_gather_u32offset_s32(svbool_t pg, const int32_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u32, offset, _s32)(pg, base, offsets);
 }
 
@@ -210,8 +210,8 @@ svint32_t test_svldnt1_gather_u32offset_s32(svbool_t pg, const int32_t *base, sv
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svint64_t test_svldnt1_gather_u64offset_s64(svbool_t pg, const int64_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u64, offset, _s64)(pg, base, offsets);
 }
 
@@ -228,8 +228,8 @@ svint64_t test_svldnt1_gather_u64offset_s64(svbool_t pg, const int64_t *base, sv
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP1]]
 //
 svuint32_t test_svldnt1_gather_u32offset_u32(svbool_t pg, const uint32_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u32, offset, _u32)(pg, base, offsets);
 }
 
@@ -246,8 +246,8 @@ svuint32_t test_svldnt1_gather_u32offset_u32(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svuint64_t test_svldnt1_gather_u64offset_u64(svbool_t pg, const uint64_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u64, offset, _u64)(pg, base, offsets);
 }
 
@@ -264,8 +264,8 @@ svuint64_t test_svldnt1_gather_u64offset_u64(svbool_t pg, const uint64_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
 //
 svfloat32_t test_svldnt1_gather_u32offset_f32(svbool_t pg, const float32_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32offset_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32offset_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u32, offset, _f32)(pg, base, offsets);
 }
 
@@ -282,8 +282,8 @@ svfloat32_t test_svldnt1_gather_u32offset_f32(svbool_t pg, const float32_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
 //
 svfloat64_t test_svldnt1_gather_u64offset_f64(svbool_t pg, const float64_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64offset_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64offset_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u64, offset, _f64)(pg, base, offsets);
 }
 
@@ -300,8 +300,8 @@ svfloat64_t test_svldnt1_gather_u64offset_f64(svbool_t pg, const float64_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP1]]
 //
 svint32_t test_svldnt1_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _offset_s32, )(pg, bases, offset);
 }
 
@@ -318,8 +318,8 @@ svint32_t test_svldnt1_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svint64_t test_svldnt1_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -336,8 +336,8 @@ svint64_t test_svldnt1_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP1]]
 //
 svuint32_t test_svldnt1_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _offset_u32, )(pg, bases, offset);
 }
 
@@ -354,8 +354,8 @@ svuint32_t test_svldnt1_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svuint64_t test_svldnt1_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }
 
@@ -372,8 +372,8 @@ svuint64_t test_svldnt1_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x float> [[TMP1]]
 //
 svfloat32_t test_svldnt1_gather_u32base_offset_f32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset_f32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_offset_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset_f32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_offset_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _offset_f32, )(pg, bases, offset);
 }
 
@@ -390,8 +390,8 @@ svfloat32_t test_svldnt1_gather_u32base_offset_f32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
 //
 svfloat64_t test_svldnt1_gather_u64base_offset_f64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_offset_f64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_offset_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_offset_f64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_offset_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _offset_f64, )(pg, bases, offset);
 }
 
@@ -408,8 +408,8 @@ svfloat64_t test_svldnt1_gather_u64base_offset_f64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svint64_t test_svldnt1_gather_s64index_s64(svbool_t pg, const int64_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, s64, index, _s64)(pg, base, indices);
 }
 
@@ -426,8 +426,8 @@ svint64_t test_svldnt1_gather_s64index_s64(svbool_t pg, const int64_t *base, svi
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svuint64_t test_svldnt1_gather_s64index_u64(svbool_t pg, const uint64_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, s64, index, _u64)(pg, base, indices);
 }
 
@@ -444,8 +444,8 @@ svuint64_t test_svldnt1_gather_s64index_u64(svbool_t pg, const uint64_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
 //
 svfloat64_t test_svldnt1_gather_s64index_f64(svbool_t pg, const float64_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_s64index_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_s64index_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, s64, index, _f64)(pg, base, indices);
 }
 
@@ -462,8 +462,8 @@ svfloat64_t test_svldnt1_gather_s64index_f64(svbool_t pg, const float64_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svint64_t test_svldnt1_gather_u64index_s64(svbool_t pg, const int64_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u64, index, _s64)(pg, base, indices);
 }
 
@@ -480,8 +480,8 @@ svint64_t test_svldnt1_gather_u64index_s64(svbool_t pg, const int64_t *base, svu
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP1]]
 //
 svuint64_t test_svldnt1_gather_u64index_u64(svbool_t pg, const uint64_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u64, index, _u64)(pg, base, indices);
 }
 
@@ -498,8 +498,8 @@ svuint64_t test_svldnt1_gather_u64index_u64(svbool_t pg, const uint64_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP1]]
 //
 svfloat64_t test_svldnt1_gather_u64index_f64(svbool_t pg, const float64_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64index_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64index_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather_, u64, index, _f64)(pg, base, indices);
 }
 
@@ -518,8 +518,8 @@ svfloat64_t test_svldnt1_gather_u64index_f64(svbool_t pg, const float64_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1_gather_u32base_index_s32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_index_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_index_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _index_s32, )(pg, bases, index);
 }
 
@@ -538,8 +538,8 @@ svint32_t test_svldnt1_gather_u32base_index_s32(svbool_t pg, svuint32_t bases, i
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1_gather_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _index_s64, )(pg, bases, index);
 }
 
@@ -558,8 +558,8 @@ svint64_t test_svldnt1_gather_u64base_index_s64(svbool_t pg, svuint64_t bases, i
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1_gather_u32base_index_u32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_index_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_index_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _index_u32, )(pg, bases, index);
 }
 
@@ -578,8 +578,8 @@ svuint32_t test_svldnt1_gather_u32base_index_u32(svbool_t pg, svuint32_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1_gather_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _index_u64, )(pg, bases, index);
 }
 
@@ -598,8 +598,8 @@ svuint64_t test_svldnt1_gather_u64base_index_u64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x float> [[TMP2]]
 //
 svfloat32_t test_svldnt1_gather_u32base_index_f32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index_f32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u32base_index_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index_f32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u32base_index_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u32base, _index_f32, )(pg, bases, index);
 }
 
@@ -618,7 +618,7 @@ svfloat32_t test_svldnt1_gather_u32base_index_f32(svbool_t pg, svuint32_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x double> [[TMP2]]
 //
 svfloat64_t test_svldnt1_gather_u64base_index_f64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1_gather_index_f64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1_gather_u64base_index_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1_gather_index_f64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1_gather_u64base_index_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1_gather, _u64base, _index_f64, )(pg, bases, index);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c
index c8e0b0c945846..b4d7a398087b3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1sb_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u32base, _s32, )(pg, bases);
 }
 
@@ -52,8 +52,8 @@ svint32_t test_svldnt1sb_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sb_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -72,8 +72,8 @@ svint64_t test_svldnt1sb_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1sb_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u32base, _u32, )(pg, bases);
 }
 
@@ -92,8 +92,8 @@ svuint32_t test_svldnt1sb_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sb_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -112,8 +112,8 @@ svuint64_t test_svldnt1sb_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sb_gather_s64offset_s64(svbool_t pg, const int8_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather_, s64, offset_s64, )(pg, base, offsets);
 }
 
@@ -132,8 +132,8 @@ svint64_t test_svldnt1sb_gather_s64offset_s64(svbool_t pg, const int8_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sb_gather_s64offset_u64(svbool_t pg, const int8_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather_, s64, offset_u64, )(pg, base, offsets);
 }
 
@@ -152,8 +152,8 @@ svuint64_t test_svldnt1sb_gather_s64offset_u64(svbool_t pg, const int8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1sb_gather_u32offset_s32(svbool_t pg, const int8_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather_, u32, offset_s32, )(pg, base, offsets);
 }
 
@@ -172,8 +172,8 @@ svint32_t test_svldnt1sb_gather_u32offset_s32(svbool_t pg, const int8_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sb_gather_u64offset_s64(svbool_t pg, const int8_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather_, u64, offset_s64, )(pg, base, offsets);
 }
 
@@ -192,8 +192,8 @@ svint64_t test_svldnt1sb_gather_u64offset_s64(svbool_t pg, const int8_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1sb_gather_u32offset_u32(svbool_t pg, const int8_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather_, u32, offset_u32, )(pg, base, offsets);
 }
 
@@ -212,8 +212,8 @@ svuint32_t test_svldnt1sb_gather_u32offset_u32(svbool_t pg, const int8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sb_gather_u64offset_u64(svbool_t pg, const int8_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather_, u64, offset_u64, )(pg, base, offsets);
 }
 
@@ -232,8 +232,8 @@ svuint64_t test_svldnt1sb_gather_u64offset_u64(svbool_t pg, const int8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1sb_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u32base, _offset_s32, )(pg, bases, offset);
 }
 
@@ -252,8 +252,8 @@ svint32_t test_svldnt1sb_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sb_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -272,8 +272,8 @@ svint64_t test_svldnt1sb_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1sb_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u32base, _offset_u32, )(pg, bases, offset);
 }
 
@@ -292,7 +292,7 @@ svuint32_t test_svldnt1sb_gather_u32base_offset_u32(svbool_t pg, svuint32_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sb_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sb_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sb_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sb_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sb_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sb_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c
index 34ec56f966d7d..a53b2a3c5277f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sh.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1sh_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u32base, _s32, )(pg, bases);
 }
 
@@ -52,8 +52,8 @@ svint32_t test_svldnt1sh_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sh_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -72,8 +72,8 @@ svint64_t test_svldnt1sh_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1sh_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u32base, _u32, )(pg, bases);
 }
 
@@ -92,8 +92,8 @@ svuint32_t test_svldnt1sh_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sh_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -112,8 +112,8 @@ svuint64_t test_svldnt1sh_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sh_gather_s64offset_s64(svbool_t pg, const int16_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, s64, offset_s64, )(pg, base, offsets);
 }
 
@@ -132,8 +132,8 @@ svint64_t test_svldnt1sh_gather_s64offset_s64(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sh_gather_s64offset_u64(svbool_t pg, const int16_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, s64, offset_u64, )(pg, base, offsets);
 }
 
@@ -152,8 +152,8 @@ svuint64_t test_svldnt1sh_gather_s64offset_u64(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1sh_gather_u32offset_s32(svbool_t pg, const int16_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, u32, offset_s32, )(pg, base, offsets);
 }
 
@@ -172,8 +172,8 @@ svint32_t test_svldnt1sh_gather_u32offset_s32(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sh_gather_u64offset_s64(svbool_t pg, const int16_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, u64, offset_s64, )(pg, base, offsets);
 }
 
@@ -192,8 +192,8 @@ svint64_t test_svldnt1sh_gather_u64offset_s64(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1sh_gather_u32offset_u32(svbool_t pg, const int16_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, u32, offset_u32, )(pg, base, offsets);
 }
 
@@ -212,8 +212,8 @@ svuint32_t test_svldnt1sh_gather_u32offset_u32(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sh_gather_u64offset_u64(svbool_t pg, const int16_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, u64, offset_u64, )(pg, base, offsets);
 }
 
@@ -232,8 +232,8 @@ svuint64_t test_svldnt1sh_gather_u64offset_u64(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1sh_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u32base, _offset_s32, )(pg, bases, offset);
 }
 
@@ -252,8 +252,8 @@ svint32_t test_svldnt1sh_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sh_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -272,8 +272,8 @@ svint64_t test_svldnt1sh_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1sh_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u32base, _offset_u32, )(pg, bases, offset);
 }
 
@@ -292,8 +292,8 @@ svuint32_t test_svldnt1sh_gather_u32base_offset_u32(svbool_t pg, svuint32_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sh_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }
 
@@ -312,8 +312,8 @@ svuint64_t test_svldnt1sh_gather_u64base_offset_u64(svbool_t pg, svuint64_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sh_gather_s64index_s64(svbool_t pg, const int16_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, s64, index_s64, )(pg, base, indices);
 }
 
@@ -332,8 +332,8 @@ svint64_t test_svldnt1sh_gather_s64index_s64(svbool_t pg, const int16_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sh_gather_s64index_u64(svbool_t pg, const int16_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, s64, index_u64, )(pg, base, indices);
 }
 
@@ -352,8 +352,8 @@ svuint64_t test_svldnt1sh_gather_s64index_u64(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sh_gather_u64index_s64(svbool_t pg, const int16_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, u64, index_s64, )(pg, base, indices);
 }
 
@@ -372,8 +372,8 @@ svint64_t test_svldnt1sh_gather_u64index_s64(svbool_t pg, const int16_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sh_gather_u64index_u64(svbool_t pg, const int16_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather_, u64, index_u64, )(pg, base, indices);
 }
 
@@ -394,8 +394,8 @@ svuint64_t test_svldnt1sh_gather_u64index_u64(svbool_t pg, const int16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP3]]
 //
 svint32_t test_svldnt1sh_gather_u32base_index_s32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32base_index_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32base_index_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u32base, _index_s32, )(pg, bases, index);
 }
 
@@ -416,8 +416,8 @@ svint32_t test_svldnt1sh_gather_u32base_index_s32(svbool_t pg, svuint32_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svint64_t test_svldnt1sh_gather_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u64base, _index_s64, )(pg, bases, index);
 }
 
@@ -438,8 +438,8 @@ svint64_t test_svldnt1sh_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP3]]
 //
 svuint32_t test_svldnt1sh_gather_u32base_index_u32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u32base_index_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u32base_index_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u32base, _index_u32, )(pg, bases, index);
 }
 
@@ -460,7 +460,7 @@ svuint32_t test_svldnt1sh_gather_u32base_index_u32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svuint64_t test_svldnt1sh_gather_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sh_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sh_gather_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sh_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sh_gather_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sh_gather, _u64base, _index_u64, )(pg, bases, index);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c
index acdb2ba0a6d5a..96171f167131f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1sw.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sw_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -52,8 +52,8 @@ svint64_t test_svldnt1sw_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sw_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -72,8 +72,8 @@ svuint64_t test_svldnt1sw_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sw_gather_s64offset_s64(svbool_t pg, const int32_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, s64, offset_s64, )(pg, base, offsets);
 }
 
@@ -92,8 +92,8 @@ svint64_t test_svldnt1sw_gather_s64offset_s64(svbool_t pg, const int32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sw_gather_s64offset_u64(svbool_t pg, const int32_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, s64, offset_u64, )(pg, base, offsets);
 }
 
@@ -112,8 +112,8 @@ svuint64_t test_svldnt1sw_gather_s64offset_u64(svbool_t pg, const int32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sw_gather_u64offset_s64(svbool_t pg, const int32_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, u64, offset_s64, )(pg, base, offsets);
 }
 
@@ -132,8 +132,8 @@ svint64_t test_svldnt1sw_gather_u64offset_s64(svbool_t pg, const int32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sw_gather_u64offset_u64(svbool_t pg, const int32_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, u64, offset_u64, )(pg, base, offsets);
 }
 
@@ -152,8 +152,8 @@ svuint64_t test_svldnt1sw_gather_u64offset_u64(svbool_t pg, const int32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sw_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -172,8 +172,8 @@ svint64_t test_svldnt1sw_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sw_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }
 
@@ -192,8 +192,8 @@ svuint64_t test_svldnt1sw_gather_u64base_offset_u64(svbool_t pg, svuint64_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sw_gather_s64index_s64(svbool_t pg, const int32_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, s64, index_s64, )(pg, base, indices);
 }
 
@@ -212,8 +212,8 @@ svint64_t test_svldnt1sw_gather_s64index_s64(svbool_t pg, const int32_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sw_gather_s64index_u64(svbool_t pg, const int32_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, s64, index_u64, )(pg, base, indices);
 }
 
@@ -232,8 +232,8 @@ svuint64_t test_svldnt1sw_gather_s64index_u64(svbool_t pg, const int32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1sw_gather_u64index_s64(svbool_t pg, const int32_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, u64, index_s64, )(pg, base, indices);
 }
 
@@ -252,8 +252,8 @@ svint64_t test_svldnt1sw_gather_u64index_s64(svbool_t pg, const int32_t *base, s
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1sw_gather_u64index_u64(svbool_t pg, const int32_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather_, u64, index_u64, )(pg, base, indices);
 }
 
@@ -274,8 +274,8 @@ svuint64_t test_svldnt1sw_gather_u64index_u64(svbool_t pg, const int32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svint64_t test_svldnt1sw_gather_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather, _u64base, _index_s64, )(pg, bases, index);
 }
 
@@ -296,7 +296,7 @@ svint64_t test_svldnt1sw_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svuint64_t test_svldnt1sw_gather_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1sw_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1sw_gather_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1sw_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1sw_gather_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1sw_gather, _u64base, _index_u64, )(pg, bases, index);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c
index 4f600a06452bd..c71334e7bfbc7 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1ub.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1ub_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u32base, _s32, )(pg, bases);
 }
 
@@ -52,8 +52,8 @@ svint32_t test_svldnt1ub_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1ub_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -72,8 +72,8 @@ svint64_t test_svldnt1ub_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1ub_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u32base, _u32, )(pg, bases);
 }
 
@@ -92,8 +92,8 @@ svuint32_t test_svldnt1ub_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1ub_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -112,8 +112,8 @@ svuint64_t test_svldnt1ub_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1ub_gather_s64offset_s64(svbool_t pg, const uint8_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather_, s64, offset_s64, )(pg, base, offsets);
 }
 
@@ -132,8 +132,8 @@ svint64_t test_svldnt1ub_gather_s64offset_s64(svbool_t pg, const uint8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1ub_gather_s64offset_u64(svbool_t pg, const uint8_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather_, s64, offset_u64, )(pg, base, offsets);
 }
 
@@ -152,8 +152,8 @@ svuint64_t test_svldnt1ub_gather_s64offset_u64(svbool_t pg, const uint8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1ub_gather_u32offset_s32(svbool_t pg, const uint8_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather_, u32, offset_s32, )(pg, base, offsets);
 }
 
@@ -172,8 +172,8 @@ svint32_t test_svldnt1ub_gather_u32offset_s32(svbool_t pg, const uint8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1ub_gather_u64offset_s64(svbool_t pg, const uint8_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather_, u64, offset_s64, )(pg, base, offsets);
 }
 
@@ -192,8 +192,8 @@ svint64_t test_svldnt1ub_gather_u64offset_s64(svbool_t pg, const uint8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1ub_gather_u32offset_u32(svbool_t pg, const uint8_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather_, u32, offset_u32, )(pg, base, offsets);
 }
 
@@ -212,8 +212,8 @@ svuint32_t test_svldnt1ub_gather_u32offset_u32(svbool_t pg, const uint8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1ub_gather_u64offset_u64(svbool_t pg, const uint8_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather_, u64, offset_u64, )(pg, base, offsets);
 }
 
@@ -232,8 +232,8 @@ svuint64_t test_svldnt1ub_gather_u64offset_u64(svbool_t pg, const uint8_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1ub_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u32base, _offset_s32, )(pg, bases, offset);
 }
 
@@ -252,8 +252,8 @@ svint32_t test_svldnt1ub_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1ub_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -272,8 +272,8 @@ svint64_t test_svldnt1ub_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1ub_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u32base, _offset_u32, )(pg, bases, offset);
 }
 
@@ -292,7 +292,7 @@ svuint32_t test_svldnt1ub_gather_u32base_offset_u32(svbool_t pg, svuint32_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1ub_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1ub_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1ub_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1ub_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1ub_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1ub_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c
index 0609bfcb469d8..5c0ea164f2e13 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uh.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1uh_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u32base, _s32, )(pg, bases);
 }
 
@@ -52,8 +52,8 @@ svint32_t test_svldnt1uh_gather_u32base_s32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uh_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -72,8 +72,8 @@ svint64_t test_svldnt1uh_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1uh_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u32base, _u32, )(pg, bases);
 }
 
@@ -92,8 +92,8 @@ svuint32_t test_svldnt1uh_gather_u32base_u32(svbool_t pg, svuint32_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uh_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -112,8 +112,8 @@ svuint64_t test_svldnt1uh_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uh_gather_s64offset_s64(svbool_t pg, const uint16_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, s64, offset_s64, )(pg, base, offsets);
 }
 
@@ -132,8 +132,8 @@ svint64_t test_svldnt1uh_gather_s64offset_s64(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uh_gather_s64offset_u64(svbool_t pg, const uint16_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, s64, offset_u64, )(pg, base, offsets);
 }
 
@@ -152,8 +152,8 @@ svuint64_t test_svldnt1uh_gather_s64offset_u64(svbool_t pg, const uint16_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1uh_gather_u32offset_s32(svbool_t pg, const uint16_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, u32, offset_s32, )(pg, base, offsets);
 }
 
@@ -172,8 +172,8 @@ svint32_t test_svldnt1uh_gather_u32offset_s32(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uh_gather_u64offset_s64(svbool_t pg, const uint16_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, u64, offset_s64, )(pg, base, offsets);
 }
 
@@ -192,8 +192,8 @@ svint64_t test_svldnt1uh_gather_u64offset_s64(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1uh_gather_u32offset_u32(svbool_t pg, const uint16_t *base, svuint32_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, u32, offset_u32, )(pg, base, offsets);
 }
 
@@ -212,8 +212,8 @@ svuint32_t test_svldnt1uh_gather_u32offset_u32(svbool_t pg, const uint16_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uh_gather_u64offset_u64(svbool_t pg, const uint16_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, u64, offset_u64, )(pg, base, offsets);
 }
 
@@ -232,8 +232,8 @@ svuint64_t test_svldnt1uh_gather_u64offset_u64(svbool_t pg, const uint16_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svint32_t test_svldnt1uh_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u32base, _offset_s32, )(pg, bases, offset);
 }
 
@@ -252,8 +252,8 @@ svint32_t test_svldnt1uh_gather_u32base_offset_s32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uh_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -272,8 +272,8 @@ svint64_t test_svldnt1uh_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP2]]
 //
 svuint32_t test_svldnt1uh_gather_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u32base, _offset_u32, )(pg, bases, offset);
 }
 
@@ -292,8 +292,8 @@ svuint32_t test_svldnt1uh_gather_u32base_offset_u32(svbool_t pg, svuint32_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uh_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }
 
@@ -312,8 +312,8 @@ svuint64_t test_svldnt1uh_gather_u64base_offset_u64(svbool_t pg, svuint64_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uh_gather_s64index_s64(svbool_t pg, const uint16_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, s64, index_s64, )(pg, base, indices);
 }
 
@@ -332,8 +332,8 @@ svint64_t test_svldnt1uh_gather_s64index_s64(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uh_gather_s64index_u64(svbool_t pg, const uint16_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, s64, index_u64, )(pg, base, indices);
 }
 
@@ -352,8 +352,8 @@ svuint64_t test_svldnt1uh_gather_s64index_u64(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uh_gather_u64index_s64(svbool_t pg, const uint16_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, u64, index_s64, )(pg, base, indices);
 }
 
@@ -372,8 +372,8 @@ svint64_t test_svldnt1uh_gather_u64index_s64(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uh_gather_u64index_u64(svbool_t pg, const uint16_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather_, u64, index_u64, )(pg, base, indices);
 }
 
@@ -394,8 +394,8 @@ svuint64_t test_svldnt1uh_gather_u64index_u64(svbool_t pg, const uint16_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP3]]
 //
 svint32_t test_svldnt1uh_gather_u32base_index_s32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_s32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32base_index_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_s32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32base_index_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u32base, _index_s32, )(pg, bases, index);
 }
 
@@ -416,8 +416,8 @@ svint32_t test_svldnt1uh_gather_u32base_index_s32(svbool_t pg, svuint32_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svint64_t test_svldnt1uh_gather_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u64base, _index_s64, )(pg, bases, index);
 }
 
@@ -438,8 +438,8 @@ svint64_t test_svldnt1uh_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 4 x i32> [[TMP3]]
 //
 svuint32_t test_svldnt1uh_gather_u32base_index_u32(svbool_t pg, svuint32_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_u32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u32base_index_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_u32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u32base_index_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u32base, _index_u32, )(pg, bases, index);
 }
 
@@ -460,7 +460,7 @@ svuint32_t test_svldnt1uh_gather_u32base_index_u32(svbool_t pg, svuint32_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svuint64_t test_svldnt1uh_gather_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uh_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uh_gather_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uh_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uh_gather_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uh_gather, _u64base, _index_u64, )(pg, bases, index);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c
index ef43761c41b94..f4fa9b6d190ba 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_ldnt1uw.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uw_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather, _u64base, _s64, )(pg, bases);
 }
 
@@ -52,8 +52,8 @@ svint64_t test_svldnt1uw_gather_u64base_s64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uw_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather, _u64base, _u64, )(pg, bases);
 }
 
@@ -72,8 +72,8 @@ svuint64_t test_svldnt1uw_gather_u64base_u64(svbool_t pg, svuint64_t bases) {
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uw_gather_s64offset_s64(svbool_t pg, const uint32_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, s64, offset_s64, )(pg, base, offsets);
 }
 
@@ -92,8 +92,8 @@ svint64_t test_svldnt1uw_gather_s64offset_s64(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uw_gather_s64offset_u64(svbool_t pg, const uint32_t *base, svint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, s64, offset_u64, )(pg, base, offsets);
 }
 
@@ -112,8 +112,8 @@ svuint64_t test_svldnt1uw_gather_s64offset_u64(svbool_t pg, const uint32_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uw_gather_u64offset_s64(svbool_t pg, const uint32_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, u64, offset_s64, )(pg, base, offsets);
 }
 
@@ -132,8 +132,8 @@ svint64_t test_svldnt1uw_gather_u64offset_s64(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uw_gather_u64offset_u64(svbool_t pg, const uint32_t *base, svuint64_t offsets) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, u64, offset_u64, )(pg, base, offsets);
 }
 
@@ -152,8 +152,8 @@ svuint64_t test_svldnt1uw_gather_u64offset_u64(svbool_t pg, const uint32_t *base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uw_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_offset_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_offset_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather, _u64base, _offset_s64, )(pg, bases, offset);
 }
 
@@ -172,8 +172,8 @@ svint64_t test_svldnt1uw_gather_u64base_offset_s64(svbool_t pg, svuint64_t bases
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uw_gather_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_offset_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_offset_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather, _u64base, _offset_u64, )(pg, bases, offset);
 }
 
@@ -192,8 +192,8 @@ svuint64_t test_svldnt1uw_gather_u64base_offset_u64(svbool_t pg, svuint64_t base
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uw_gather_s64index_s64(svbool_t pg, const uint32_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, s64, index_s64, )(pg, base, indices);
 }
 
@@ -212,8 +212,8 @@ svint64_t test_svldnt1uw_gather_s64index_s64(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uw_gather_s64index_u64(svbool_t pg, const uint32_t *base, svint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, s64, index_u64, )(pg, base, indices);
 }
 
@@ -232,8 +232,8 @@ svuint64_t test_svldnt1uw_gather_s64index_u64(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svint64_t test_svldnt1uw_gather_u64index_s64(svbool_t pg, const uint32_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, u64, index_s64, )(pg, base, indices);
 }
 
@@ -252,8 +252,8 @@ svint64_t test_svldnt1uw_gather_u64index_s64(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP2]]
 //
 svuint64_t test_svldnt1uw_gather_u64index_u64(svbool_t pg, const uint32_t *base, svuint64_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather_, u64, index_u64, )(pg, base, indices);
 }
 
@@ -274,8 +274,8 @@ svuint64_t test_svldnt1uw_gather_u64index_u64(svbool_t pg, const uint32_t *base,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svint64_t test_svldnt1uw_gather_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_index_s64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_index_s64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather, _u64base, _index_s64, )(pg, bases, index);
 }
 
@@ -296,7 +296,7 @@ svint64_t test_svldnt1uw_gather_u64base_index_s64(svbool_t pg, svuint64_t bases,
 // CPP-CHECK-NEXT:    ret <vscale x 2 x i64> [[TMP3]]
 //
 svuint64_t test_svldnt1uw_gather_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index) {
-  // overload-warning at +2 {{implicit declaration of function 'svldnt1uw_gather_index_u64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svldnt1uw_gather_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svldnt1uw_gather_index_u64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svldnt1uw_gather_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svldnt1uw_gather, _u64base, _index_u64, )(pg, bases, index);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c
index a7bac8f552bb5..fd5b0d272a87f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_logb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svint16_t test_svlogb_f16_z(svbool_t pg, svfloat16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f16,_z,)(pg, op);
 }
 
@@ -50,8 +50,8 @@ svint16_t test_svlogb_f16_z(svbool_t pg, svfloat16_t op)
 //
 svint32_t test_svlogb_f32_z(svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f32,_z,)(pg, op);
 }
 
@@ -69,8 +69,8 @@ svint32_t test_svlogb_f32_z(svbool_t pg, svfloat32_t op)
 //
 svint64_t test_svlogb_f64_z(svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f64,_z,)(pg, op);
 }
 
@@ -88,8 +88,8 @@ svint64_t test_svlogb_f64_z(svbool_t pg, svfloat64_t op)
 //
 svint16_t test_svlogb_f16_m(svint16_t inactive, svbool_t pg, svfloat16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f16,_m,)(inactive, pg, op);
 }
 
@@ -107,8 +107,8 @@ svint16_t test_svlogb_f16_m(svint16_t inactive, svbool_t pg, svfloat16_t op)
 //
 svint32_t test_svlogb_f32_m(svint32_t inactive, svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f32,_m,)(inactive, pg, op);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svlogb_f32_m(svint32_t inactive, svbool_t pg, svfloat32_t op)
 //
 svint64_t test_svlogb_f64_m(svint64_t inactive, svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f64,_m,)(inactive, pg, op);
 }
 
@@ -145,8 +145,8 @@ svint64_t test_svlogb_f64_m(svint64_t inactive, svbool_t pg, svfloat64_t op)
 //
 svint16_t test_svlogb_f16_x(svbool_t pg, svfloat16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f16,_x,)(pg, op);
 }
 
@@ -164,8 +164,8 @@ svint16_t test_svlogb_f16_x(svbool_t pg, svfloat16_t op)
 //
 svint32_t test_svlogb_f32_x(svbool_t pg, svfloat32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f32,_x,)(pg, op);
 }
 
@@ -183,7 +183,7 @@ svint32_t test_svlogb_f32_x(svbool_t pg, svfloat32_t op)
 //
 svint64_t test_svlogb_f64_x(svbool_t pg, svfloat64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svlogb_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svlogb_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svlogb_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svlogb_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svlogb,_f64,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c
index 624994912ad3d..d00595dcd13bb 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_match.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svbool_t test_svmatch_s8(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmatch_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmatch_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmatch,_s8,,)(pg, op1, op2);
 }
 
@@ -50,8 +50,8 @@ svbool_t test_svmatch_s8(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svbool_t test_svmatch_s16(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmatch_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmatch_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmatch,_s16,,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svbool_t test_svmatch_s16(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svbool_t test_svmatch_u8(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmatch_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmatch_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmatch,_u8,,)(pg, op1, op2);
 }
 
@@ -88,7 +88,7 @@ svbool_t test_svmatch_u8(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svbool_t test_svmatch_u16(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmatch_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmatch_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmatch,_u16,,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c
index c9a3fbeeed507..25833641fad56 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxnmp.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svfloat16_t test_svmaxnmp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxnmp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxnmp_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxnmp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxnmp_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxnmp,_f16,_m,)(pg, op1, op2);
 }
 
@@ -50,8 +50,8 @@ svfloat16_t test_svmaxnmp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svmaxnmp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxnmp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxnmp_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxnmp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxnmp_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxnmp,_f32,_m,)(pg, op1, op2);
 }
 
@@ -69,8 +69,8 @@ svfloat32_t test_svmaxnmp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svmaxnmp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxnmp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxnmp_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxnmp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxnmp_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxnmp,_f64,_m,)(pg, op1, op2);
 }
 
@@ -88,8 +88,8 @@ svfloat64_t test_svmaxnmp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 //
 svfloat16_t test_svmaxnmp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxnmp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxnmp_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxnmp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxnmp_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxnmp,_f16,_x,)(pg, op1, op2);
 }
 
@@ -107,8 +107,8 @@ svfloat16_t test_svmaxnmp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svmaxnmp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxnmp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxnmp_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxnmp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxnmp_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxnmp,_f32,_x,)(pg, op1, op2);
 }
 
@@ -126,7 +126,7 @@ svfloat32_t test_svmaxnmp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svmaxnmp_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxnmp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxnmp_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxnmp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxnmp_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxnmp,_f64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c
index a25844d3f6c9f..fc9d14c717e97 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_maxp.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svmaxp_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s8,_m,)(pg, op1, op2);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svmaxp_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svmaxp_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svmaxp_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svmaxp_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svmaxp_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svmaxp_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s64,_m,)(pg, op1, op2);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svmaxp_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svmaxp_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u8,_m,)(pg, op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svmaxp_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svmaxp_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u16,_m,)(pg, op1, op2);
 }
 
@@ -141,8 +141,8 @@ svuint16_t test_svmaxp_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svmaxp_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u32,_m,)(pg, op1, op2);
 }
 
@@ -160,8 +160,8 @@ svuint32_t test_svmaxp_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svmaxp_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u64,_m,)(pg, op1, op2);
 }
 
@@ -177,8 +177,8 @@ svuint64_t test_svmaxp_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svmaxp_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s8,_x,)(pg, op1, op2);
 }
 
@@ -196,8 +196,8 @@ svint8_t test_svmaxp_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svmaxp_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s16,_x,)(pg, op1, op2);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svmaxp_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svmaxp_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s32,_x,)(pg, op1, op2);
 }
 
@@ -234,8 +234,8 @@ svint32_t test_svmaxp_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svmaxp_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_s64,_x,)(pg, op1, op2);
 }
 
@@ -251,8 +251,8 @@ svint64_t test_svmaxp_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svmaxp_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u8,_x,)(pg, op1, op2);
 }
 
@@ -270,8 +270,8 @@ svuint8_t test_svmaxp_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svmaxp_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u16,_x,)(pg, op1, op2);
 }
 
@@ -289,8 +289,8 @@ svuint16_t test_svmaxp_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svmaxp_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u32,_x,)(pg, op1, op2);
 }
 
@@ -308,8 +308,8 @@ svuint32_t test_svmaxp_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svmaxp_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_u64,_x,)(pg, op1, op2);
 }
 
@@ -327,8 +327,8 @@ svuint64_t test_svmaxp_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svfloat16_t test_svmaxp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_f16,_m,)(pg, op1, op2);
 }
 
@@ -346,8 +346,8 @@ svfloat16_t test_svmaxp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svmaxp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_f32,_m,)(pg, op1, op2);
 }
 
@@ -365,8 +365,8 @@ svfloat32_t test_svmaxp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svmaxp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_f64,_m,)(pg, op1, op2);
 }
 
@@ -384,8 +384,8 @@ svfloat64_t test_svmaxp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 //
 svfloat16_t test_svmaxp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_f16,_x,)(pg, op1, op2);
 }
 
@@ -403,8 +403,8 @@ svfloat16_t test_svmaxp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svmaxp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_f32,_x,)(pg, op1, op2);
 }
 
@@ -422,7 +422,7 @@ svfloat32_t test_svmaxp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svmaxp_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmaxp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmaxp_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svmaxp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmaxp_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmaxp,_f64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c
index 686e26e096132..de4f8e4dc33f4 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minnmp.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svfloat16_t test_svminnmp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminnmp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminnmp_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminnmp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminnmp_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminnmp,_f16,_m,)(pg, op1, op2);
 }
 
@@ -50,8 +50,8 @@ svfloat16_t test_svminnmp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svminnmp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminnmp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminnmp_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminnmp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminnmp_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminnmp,_f32,_m,)(pg, op1, op2);
 }
 
@@ -69,8 +69,8 @@ svfloat32_t test_svminnmp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svminnmp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminnmp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminnmp_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminnmp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminnmp_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminnmp,_f64,_m,)(pg, op1, op2);
 }
 
@@ -88,8 +88,8 @@ svfloat64_t test_svminnmp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 //
 svfloat16_t test_svminnmp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminnmp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminnmp_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminnmp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminnmp_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminnmp,_f16,_x,)(pg, op1, op2);
 }
 
@@ -107,8 +107,8 @@ svfloat16_t test_svminnmp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svminnmp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminnmp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminnmp_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminnmp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminnmp_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminnmp,_f32,_x,)(pg, op1, op2);
 }
 
@@ -126,7 +126,7 @@ svfloat32_t test_svminnmp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svminnmp_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminnmp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminnmp_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminnmp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminnmp_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminnmp,_f64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c
index f8972fb8021ad..9fb258c25848d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_minp.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svminp_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s8,_m,)(pg, op1, op2);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svminp_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svminp_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svminp_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svminp_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svminp_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svminp_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s64,_m,)(pg, op1, op2);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svminp_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svminp_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u8,_m,)(pg, op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svminp_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svminp_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u16,_m,)(pg, op1, op2);
 }
 
@@ -141,8 +141,8 @@ svuint16_t test_svminp_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svminp_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u32,_m,)(pg, op1, op2);
 }
 
@@ -160,8 +160,8 @@ svuint32_t test_svminp_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svminp_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u64,_m,)(pg, op1, op2);
 }
 
@@ -177,8 +177,8 @@ svuint64_t test_svminp_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svminp_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s8,_x,)(pg, op1, op2);
 }
 
@@ -196,8 +196,8 @@ svint8_t test_svminp_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svminp_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s16,_x,)(pg, op1, op2);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svminp_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svminp_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s32,_x,)(pg, op1, op2);
 }
 
@@ -234,8 +234,8 @@ svint32_t test_svminp_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svminp_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_s64,_x,)(pg, op1, op2);
 }
 
@@ -251,8 +251,8 @@ svint64_t test_svminp_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svminp_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u8,_x,)(pg, op1, op2);
 }
 
@@ -270,8 +270,8 @@ svuint8_t test_svminp_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svminp_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u16,_x,)(pg, op1, op2);
 }
 
@@ -289,8 +289,8 @@ svuint16_t test_svminp_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svminp_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u32,_x,)(pg, op1, op2);
 }
 
@@ -308,8 +308,8 @@ svuint32_t test_svminp_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svminp_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_u64,_x,)(pg, op1, op2);
 }
 
@@ -327,8 +327,8 @@ svuint64_t test_svminp_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svfloat16_t test_svminp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_f16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_f16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_f16,_m,)(pg, op1, op2);
 }
 
@@ -346,8 +346,8 @@ svfloat16_t test_svminp_f16_m(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svminp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_f32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_f32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_f32,_m,)(pg, op1, op2);
 }
 
@@ -365,8 +365,8 @@ svfloat32_t test_svminp_f32_m(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svminp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_f64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_f64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_f64,_m,)(pg, op1, op2);
 }
 
@@ -384,8 +384,8 @@ svfloat64_t test_svminp_f64_m(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 //
 svfloat16_t test_svminp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_f16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_f16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_f16,_x,)(pg, op1, op2);
 }
 
@@ -403,8 +403,8 @@ svfloat16_t test_svminp_f16_x(svbool_t pg, svfloat16_t op1, svfloat16_t op2)
 //
 svfloat32_t test_svminp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_f32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_f32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_f32,_x,)(pg, op1, op2);
 }
 
@@ -422,7 +422,7 @@ svfloat32_t test_svminp_f32_x(svbool_t pg, svfloat32_t op1, svfloat32_t op2)
 //
 svfloat64_t test_svminp_f64_x(svbool_t pg, svfloat64_t op1, svfloat64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svminp_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svminp_f64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svminp_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svminp_f64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svminp,_f64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c
index 7714773d857e5..9e80bc763027d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mla.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svint16_t test_svmla_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_s16,,)(op1, op2, op3, 0);
 }
 
@@ -44,7 +44,7 @@ svint16_t test_svmla_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svmla_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_s16,,)(op1, op2, op3, 7);
 }
 
@@ -60,7 +60,7 @@ svint16_t test_svmla_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svmla_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -76,7 +76,7 @@ svint32_t test_svmla_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svmla_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_s32,,)(op1, op2, op3, 3);
 }
 
@@ -92,7 +92,7 @@ svint32_t test_svmla_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svmla_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -108,7 +108,7 @@ svint64_t test_svmla_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svmla_lane_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_s64,,)(op1, op2, op3, 1);
 }
 
@@ -124,7 +124,7 @@ svint64_t test_svmla_lane_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint16_t test_svmla_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_u16,,)(op1, op2, op3, 0);
 }
 
@@ -140,7 +140,7 @@ svuint16_t test_svmla_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svmla_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_u16,,)(op1, op2, op3, 7);
 }
 
@@ -156,7 +156,7 @@ svuint16_t test_svmla_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svmla_lane_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_u32,,)(op1, op2, op3, 3);
 }
 
@@ -172,7 +172,7 @@ svuint32_t test_svmla_lane_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svmla_lane_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -188,6 +188,6 @@ svuint64_t test_svmla_lane_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint64_t test_svmla_lane_u64_1(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmla_lane_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmla_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmla_lane,_u64,,)(op1, op2, op3, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c
index 6d71c4a629513..c06830692b765 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmlalb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmlalb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svmlalb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmlalb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlalb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmlalb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svmlalb_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmlalb_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint32_t test_svmlalb_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svmlalb_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint64_t test_svmlalb_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svmlalb_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svint16_t test_svmlalb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svmlalb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svmlalb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svmlalb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svmlalb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svmlalb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svuint16_t test_svmlalb_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svmlalb_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint32_t test_svmlalb_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,8 +240,8 @@ svuint32_t test_svmlalb_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint64_t test_svmlalb_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_u64,,)(op1, op2, op3);
 }
 
@@ -257,8 +257,8 @@ svuint64_t test_svmlalb_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 //
 svint32_t test_svmlalb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -274,8 +274,8 @@ svint32_t test_svmlalb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svmlalb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -291,8 +291,8 @@ svint32_t test_svmlalb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlalb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -308,8 +308,8 @@ svint64_t test_svmlalb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svmlalb_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_s64,,)(op1, op2, op3, 3);
 }
 
@@ -325,8 +325,8 @@ svint64_t test_svmlalb_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint32_t test_svmlalb_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_u32,,)(op1, op2, op3, 0);
 }
 
@@ -342,8 +342,8 @@ svuint32_t test_svmlalb_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svmlalb_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_u32,,)(op1, op2, op3, 7);
 }
 
@@ -359,8 +359,8 @@ svuint32_t test_svmlalb_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op
 //
 svuint64_t test_svmlalb_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -376,8 +376,8 @@ svuint64_t test_svmlalb_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svmlalb_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_u64,,)(op1, op2, op3, 3);
 }
 
@@ -393,8 +393,8 @@ svuint64_t test_svmlalb_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op
 //
 svfloat32_t test_svmlalb_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_f32,,)(op1, op2, op3);
 }
 
@@ -414,8 +414,8 @@ svfloat32_t test_svmlalb_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 //
 svfloat32_t test_svmlalb_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_n_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_n_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb,_n_f32,,)(op1, op2, op3);
 }
 
@@ -431,8 +431,8 @@ svfloat32_t test_svmlalb_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 //
 svfloat32_t test_svmlalb_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_f32,,)(op1, op2, op3, 0);
 }
 
@@ -448,7 +448,7 @@ svfloat32_t test_svmlalb_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t
 //
 svfloat32_t test_svmlalb_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalb_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalb_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalb_lane,_f32,,)(op1, op2, op3, 7);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c
index 42036be345924..f189f18e5c395 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlalt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmlalt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmlalt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svmlalt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmlalt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlalt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmlalt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svmlalt_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmlalt_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint32_t test_svmlalt_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svmlalt_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint64_t test_svmlalt_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svmlalt_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svint16_t test_svmlalt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svmlalt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svmlalt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svmlalt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svmlalt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svmlalt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svuint16_t test_svmlalt_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svmlalt_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint32_t test_svmlalt_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,8 +240,8 @@ svuint32_t test_svmlalt_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint64_t test_svmlalt_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_u64,,)(op1, op2, op3);
 }
 
@@ -257,8 +257,8 @@ svuint64_t test_svmlalt_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 //
 svint32_t test_svmlalt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -274,8 +274,8 @@ svint32_t test_svmlalt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svmlalt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -291,8 +291,8 @@ svint32_t test_svmlalt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlalt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -308,8 +308,8 @@ svint64_t test_svmlalt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svmlalt_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_s64,,)(op1, op2, op3, 3);
 }
 
@@ -325,8 +325,8 @@ svint64_t test_svmlalt_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint32_t test_svmlalt_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_u32,,)(op1, op2, op3, 0);
 }
 
@@ -342,8 +342,8 @@ svuint32_t test_svmlalt_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svmlalt_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_u32,,)(op1, op2, op3, 7);
 }
 
@@ -359,8 +359,8 @@ svuint32_t test_svmlalt_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op
 //
 svuint64_t test_svmlalt_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -376,8 +376,8 @@ svuint64_t test_svmlalt_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svmlalt_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_u64,,)(op1, op2, op3, 3);
 }
 
@@ -393,8 +393,8 @@ svuint64_t test_svmlalt_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op
 //
 svfloat32_t test_svmlalt_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_f32,,)(op1, op2, op3);
 }
 
@@ -414,8 +414,8 @@ svfloat32_t test_svmlalt_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 //
 svfloat32_t test_svmlalt_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_n_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_n_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt,_n_f32,,)(op1, op2, op3);
 }
 
@@ -431,8 +431,8 @@ svfloat32_t test_svmlalt_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 //
 svfloat32_t test_svmlalt_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_f32,,)(op1, op2, op3, 0);
 }
 
@@ -448,7 +448,7 @@ svfloat32_t test_svmlalt_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t
 //
 svfloat32_t test_svmlalt_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlalt_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlalt_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlalt_lane,_f32,,)(op1, op2, op3, 7);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c
index 922e0a0d368c6..271b0da62a25f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mls.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svint16_t test_svmls_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_s16,,)(op1, op2, op3, 0);
 }
 
@@ -44,7 +44,7 @@ svint16_t test_svmls_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svmls_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_s16,,)(op1, op2, op3, 7);
 }
 
@@ -60,7 +60,7 @@ svint16_t test_svmls_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svmls_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -76,7 +76,7 @@ svint32_t test_svmls_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svmls_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_s32,,)(op1, op2, op3, 3);
 }
 
@@ -92,7 +92,7 @@ svint32_t test_svmls_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svmls_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -108,7 +108,7 @@ svint64_t test_svmls_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svmls_lane_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_s64,,)(op1, op2, op3, 1);
 }
 
@@ -124,7 +124,7 @@ svint64_t test_svmls_lane_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint16_t test_svmls_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_u16,,)(op1, op2, op3, 0);
 }
 
@@ -140,7 +140,7 @@ svuint16_t test_svmls_lane_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svmls_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_u16,,)(op1, op2, op3, 7);
 }
 
@@ -156,7 +156,7 @@ svuint16_t test_svmls_lane_u16_1(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svmls_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_u32,,)(op1, op2, op3, 0);
 }
 
@@ -172,7 +172,7 @@ svuint32_t test_svmls_lane_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svmls_lane_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_u32,,)(op1, op2, op3, 3);
 }
 
@@ -188,7 +188,7 @@ svuint32_t test_svmls_lane_u32_1(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svmls_lane_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -204,6 +204,6 @@ svuint64_t test_svmls_lane_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint64_t test_svmls_lane_u64_1(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmls_lane_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmls_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmls_lane,_u64,,)(op1, op2, op3, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c
index 9511598cef5a4..443b912bd0fe3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmlslb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmlslb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svmlslb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmlslb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlslb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmlslb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svmlslb_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmlslb_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint32_t test_svmlslb_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svmlslb_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint64_t test_svmlslb_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svmlslb_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svint16_t test_svmlslb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svmlslb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svmlslb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svmlslb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svmlslb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svmlslb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svuint16_t test_svmlslb_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svmlslb_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint32_t test_svmlslb_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,8 +240,8 @@ svuint32_t test_svmlslb_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint64_t test_svmlslb_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_u64,,)(op1, op2, op3);
 }
 
@@ -257,8 +257,8 @@ svuint64_t test_svmlslb_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 //
 svint32_t test_svmlslb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -274,8 +274,8 @@ svint32_t test_svmlslb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svmlslb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -291,8 +291,8 @@ svint32_t test_svmlslb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlslb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -308,8 +308,8 @@ svint64_t test_svmlslb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svmlslb_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_s64,,)(op1, op2, op3, 3);
 }
 
@@ -325,8 +325,8 @@ svint64_t test_svmlslb_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint32_t test_svmlslb_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_u32,,)(op1, op2, op3, 0);
 }
 
@@ -342,8 +342,8 @@ svuint32_t test_svmlslb_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svmlslb_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_u32,,)(op1, op2, op3, 7);
 }
 
@@ -359,8 +359,8 @@ svuint32_t test_svmlslb_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op
 //
 svuint64_t test_svmlslb_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -376,8 +376,8 @@ svuint64_t test_svmlslb_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svmlslb_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_u64,,)(op1, op2, op3, 3);
 }
 
@@ -393,8 +393,8 @@ svuint64_t test_svmlslb_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op
 //
 svfloat32_t test_svmlslb_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_f32,,)(op1, op2, op3);
 }
 
@@ -414,8 +414,8 @@ svfloat32_t test_svmlslb_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 //
 svfloat32_t test_svmlslb_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_n_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_n_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb,_n_f32,,)(op1, op2, op3);
 }
 
@@ -431,8 +431,8 @@ svfloat32_t test_svmlslb_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 //
 svfloat32_t test_svmlslb_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_f32,,)(op1, op2, op3, 0);
 }
 
@@ -448,7 +448,7 @@ svfloat32_t test_svmlslb_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t
 //
 svfloat32_t test_svmlslb_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslb_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslb_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslb_lane,_f32,,)(op1, op2, op3, 7);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c
index d5d2d2b4d5030..b99240748d1d9 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mlslt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmlslt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmlslt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svmlslt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmlslt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlslt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmlslt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint16_t test_svmlslt_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmlslt_u16(svuint16_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint32_t test_svmlslt_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svmlslt_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint64_t test_svmlslt_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svmlslt_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svint16_t test_svmlslt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svmlslt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svmlslt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svmlslt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svmlslt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svmlslt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svuint16_t test_svmlslt_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svmlslt_n_u16(svuint16_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint32_t test_svmlslt_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,8 +240,8 @@ svuint32_t test_svmlslt_n_u32(svuint32_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint64_t test_svmlslt_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_u64,,)(op1, op2, op3);
 }
 
@@ -257,8 +257,8 @@ svuint64_t test_svmlslt_n_u64(svuint64_t op1, svuint32_t op2, uint32_t op3)
 //
 svint32_t test_svmlslt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -274,8 +274,8 @@ svint32_t test_svmlslt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svmlslt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -291,8 +291,8 @@ svint32_t test_svmlslt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svmlslt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -308,8 +308,8 @@ svint64_t test_svmlslt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svmlslt_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_s64,,)(op1, op2, op3, 3);
 }
 
@@ -325,8 +325,8 @@ svint64_t test_svmlslt_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svuint32_t test_svmlslt_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_u32,,)(op1, op2, op3, 0);
 }
 
@@ -342,8 +342,8 @@ svuint32_t test_svmlslt_lane_u32(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svmlslt_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_u32,,)(op1, op2, op3, 7);
 }
 
@@ -359,8 +359,8 @@ svuint32_t test_svmlslt_lane_u32_1(svuint32_t op1, svuint16_t op2, svuint16_t op
 //
 svuint64_t test_svmlslt_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_u64,,)(op1, op2, op3, 0);
 }
 
@@ -376,8 +376,8 @@ svuint64_t test_svmlslt_lane_u64(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svmlslt_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_u64,,)(op1, op2, op3, 3);
 }
 
@@ -393,8 +393,8 @@ svuint64_t test_svmlslt_lane_u64_1(svuint64_t op1, svuint32_t op2, svuint32_t op
 //
 svfloat32_t test_svmlslt_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_f32,,)(op1, op2, op3);
 }
 
@@ -414,8 +414,8 @@ svfloat32_t test_svmlslt_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 //
 svfloat32_t test_svmlslt_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_n_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_n_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt,_n_f32,,)(op1, op2, op3);
 }
 
@@ -431,8 +431,8 @@ svfloat32_t test_svmlslt_n_f32(svfloat32_t op1, svfloat16_t op2, float16_t op3)
 //
 svfloat32_t test_svmlslt_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_f32,,)(op1, op2, op3, 0);
 }
 
@@ -448,7 +448,7 @@ svfloat32_t test_svmlslt_lane_f32(svfloat32_t op1, svfloat16_t op2, svfloat16_t
 //
 svfloat32_t test_svmlslt_lane_f32_1(svfloat32_t op1, svfloat16_t op2, svfloat16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmlslt_lane_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmlslt_lane_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmlslt_lane,_f32,,)(op1, op2, op3, 7);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c
index 1ac141a98bdca..37468b7537770 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmovlb_s16(svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlb,_s16,,)(op1);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmovlb_s16(svint8_t op1)
 //
 svint32_t test_svmovlb_s32(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlb,_s32,,)(op1);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmovlb_s32(svint16_t op1)
 //
 svint64_t test_svmovlb_s64(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlb,_s64,,)(op1);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmovlb_s64(svint32_t op1)
 //
 svuint16_t test_svmovlb_u16(svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlb,_u16,,)(op1);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmovlb_u16(svuint8_t op1)
 //
 svuint32_t test_svmovlb_u32(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlb,_u32,,)(op1);
 }
 
@@ -114,7 +114,7 @@ svuint32_t test_svmovlb_u32(svuint16_t op1)
 //
 svuint64_t test_svmovlb_u64(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlb,_u64,,)(op1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c
index 2e41aa9dd7a9d..c8c8ea03b8072 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_movlt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmovlt_s16(svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlt,_s16,,)(op1);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmovlt_s16(svint8_t op1)
 //
 svint32_t test_svmovlt_s32(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlt,_s32,,)(op1);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmovlt_s32(svint16_t op1)
 //
 svint64_t test_svmovlt_s64(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlt,_s64,,)(op1);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmovlt_s64(svint32_t op1)
 //
 svuint16_t test_svmovlt_u16(svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlt,_u16,,)(op1);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmovlt_u16(svuint8_t op1)
 //
 svuint32_t test_svmovlt_u32(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlt,_u32,,)(op1);
 }
 
@@ -114,7 +114,7 @@ svuint32_t test_svmovlt_u32(svuint16_t op1)
 //
 svuint64_t test_svmovlt_u64(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmovlt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmovlt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmovlt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmovlt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmovlt,_u64,,)(op1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c
index f794cb6d94345..784535efadc13 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mul.c
@@ -3,7 +3,7 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -28,7 +28,7 @@
 //
 svint16_t test_svmul_lane_s16(svint16_t op1, svint16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_s16,,)(op1, op2, 0);
 }
 
@@ -44,7 +44,7 @@ svint16_t test_svmul_lane_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svmul_lane_s16_1(svint16_t op1, svint16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_s16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_s16,,)(op1, op2, 7);
 }
 
@@ -60,7 +60,7 @@ svint16_t test_svmul_lane_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svmul_lane_s32(svint32_t op1, svint32_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -76,7 +76,7 @@ svint32_t test_svmul_lane_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svmul_lane_s32_1(svint32_t op1, svint32_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_s32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_s32,,)(op1, op2, 3);
 }
 
@@ -92,7 +92,7 @@ svint32_t test_svmul_lane_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svmul_lane_s64(svint64_t op1, svint64_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -108,7 +108,7 @@ svint64_t test_svmul_lane_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svmul_lane_s64_1(svint64_t op1, svint64_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_s64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_s64,,)(op1, op2, 1);
 }
 
@@ -124,7 +124,7 @@ svint64_t test_svmul_lane_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint16_t test_svmul_lane_u16(svuint16_t op1, svuint16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_u16,,)(op1, op2, 0);
 }
 
@@ -140,7 +140,7 @@ svuint16_t test_svmul_lane_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svmul_lane_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_u16'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_u16,,)(op1, op2, 7);
 }
 
@@ -156,7 +156,7 @@ svuint16_t test_svmul_lane_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svmul_lane_u32(svuint32_t op1, svuint32_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_u32,,)(op1, op2, 0);
 }
 
@@ -172,7 +172,7 @@ svuint32_t test_svmul_lane_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svmul_lane_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_u32'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_u32,,)(op1, op2, 3);
 }
 
@@ -188,7 +188,7 @@ svuint32_t test_svmul_lane_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svmul_lane_u64(svuint64_t op1, svuint64_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_u64,,)(op1, op2, 0);
 }
 
@@ -204,6 +204,6 @@ svuint64_t test_svmul_lane_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svmul_lane_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // expected-warning at +1 {{implicit declaration of function 'svmul_lane_u64'}}
+  // expected-warning at +1 {{call to undeclared function 'svmul_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmul_lane,_u64,,)(op1, op2, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c
index 9d2a1000ccdb1..0cc0ed66fa9fd 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmullb_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmullb_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svmullb_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmullb_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svmullb_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmullb_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svmullb_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmullb_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svmullb_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svmullb_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svmullb_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svmullb_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svmullb_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svmullb_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svmullb_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svmullb_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svmullb_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svmullb_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svmullb_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svmullb_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svmullb_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_n_u32,,)(op1, op2);
 }
 
@@ -240,8 +240,8 @@ svuint32_t test_svmullb_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svmullb_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb,_n_u64,,)(op1, op2);
 }
 
@@ -257,8 +257,8 @@ svuint64_t test_svmullb_n_u64(svuint32_t op1, uint32_t op2)
 //
 svint32_t test_svmullb_lane_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -274,8 +274,8 @@ svint32_t test_svmullb_lane_s32(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svmullb_lane_s32_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_s32,,)(op1, op2, 7);
 }
 
@@ -291,8 +291,8 @@ svint32_t test_svmullb_lane_s32_1(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svmullb_lane_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -308,8 +308,8 @@ svint64_t test_svmullb_lane_s64(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svmullb_lane_s64_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_s64,,)(op1, op2, 3);
 }
 
@@ -325,8 +325,8 @@ svint64_t test_svmullb_lane_s64_1(svint32_t op1, svint32_t op2)
 //
 svuint32_t test_svmullb_lane_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_u32,,)(op1, op2, 0);
 }
 
@@ -342,8 +342,8 @@ svuint32_t test_svmullb_lane_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svmullb_lane_u32_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_u32,,)(op1, op2, 7);
 }
 
@@ -359,8 +359,8 @@ svuint32_t test_svmullb_lane_u32_1(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svmullb_lane_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_u64,,)(op1, op2, 0);
 }
 
@@ -376,7 +376,7 @@ svuint64_t test_svmullb_lane_u64(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svmullb_lane_u64_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullb_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullb_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullb_lane,_u64,,)(op1, op2, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c
index 8acd3e1adfaa8..5b4cc4d0a6638 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_mullt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svmullt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svmullt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svmullt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svmullt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svmullt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svmullt_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svmullt_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svmullt_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svmullt_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svmullt_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svmullt_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svmullt_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svmullt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svmullt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svmullt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svmullt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svmullt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svmullt_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svmullt_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svmullt_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svmullt_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_n_u32,,)(op1, op2);
 }
 
@@ -240,8 +240,8 @@ svuint32_t test_svmullt_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svmullt_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt,_n_u64,,)(op1, op2);
 }
 
@@ -257,8 +257,8 @@ svuint64_t test_svmullt_n_u64(svuint32_t op1, uint32_t op2)
 //
 svint32_t test_svmullt_lane_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -274,8 +274,8 @@ svint32_t test_svmullt_lane_s32(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svmullt_lane_s32_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_s32,,)(op1, op2, 7);
 }
 
@@ -291,8 +291,8 @@ svint32_t test_svmullt_lane_s32_1(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svmullt_lane_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -308,8 +308,8 @@ svint64_t test_svmullt_lane_s64(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svmullt_lane_s64_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_s64,,)(op1, op2, 3);
 }
 
@@ -325,8 +325,8 @@ svint64_t test_svmullt_lane_s64_1(svint32_t op1, svint32_t op2)
 //
 svuint32_t test_svmullt_lane_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_u32,,)(op1, op2, 0);
 }
 
@@ -342,8 +342,8 @@ svuint32_t test_svmullt_lane_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svmullt_lane_u32_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_u32,,)(op1, op2, 7);
 }
 
@@ -359,8 +359,8 @@ svuint32_t test_svmullt_lane_u32_1(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svmullt_lane_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_u64,,)(op1, op2, 0);
 }
 
@@ -376,7 +376,7 @@ svuint64_t test_svmullt_lane_u64(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svmullt_lane_u64_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svmullt_lane_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svmullt_lane_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svmullt_lane,_u64,,)(op1, op2, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c
index 4dc01004593b1..aab18dcea82fe 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nbsl.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svnbsl_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svnbsl_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svnbsl_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svnbsl_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svnbsl_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svnbsl_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svnbsl_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_s64,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svnbsl_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svnbsl_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_u8,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svnbsl_u8(svuint8_t op1, svuint8_t op2, svuint8_t op3)
 //
 svuint16_t test_svnbsl_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_u16,,)(op1, op2, op3);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svnbsl_u16(svuint16_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint32_t test_svnbsl_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_u32,,)(op1, op2, op3);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svnbsl_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svnbsl_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_u64,,)(op1, op2, op3);
 }
 
@@ -169,8 +169,8 @@ svuint64_t test_svnbsl_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svnbsl_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_s8,,)(op1, op2, op3);
 }
 
@@ -190,8 +190,8 @@ svint8_t test_svnbsl_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svnbsl_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_s16,,)(op1, op2, op3);
 }
 
@@ -211,8 +211,8 @@ svint16_t test_svnbsl_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svnbsl_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_s32,,)(op1, op2, op3);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svnbsl_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svnbsl_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_s64,,)(op1, op2, op3);
 }
 
@@ -253,8 +253,8 @@ svint64_t test_svnbsl_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svnbsl_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_u8,,)(op1, op2, op3);
 }
 
@@ -274,8 +274,8 @@ svuint8_t test_svnbsl_n_u8(svuint8_t op1, svuint8_t op2, uint8_t op3)
 //
 svuint16_t test_svnbsl_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_u16,,)(op1, op2, op3);
 }
 
@@ -295,8 +295,8 @@ svuint16_t test_svnbsl_n_u16(svuint16_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint32_t test_svnbsl_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_u32,,)(op1, op2, op3);
 }
 
@@ -316,7 +316,7 @@ svuint32_t test_svnbsl_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svnbsl_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnbsl'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnbsl_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svnbsl'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnbsl_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnbsl,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c
index ca2c6099b46fa..ae98d893b33e6 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_nmatch.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svbool_t test_svnmatch_s8(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnmatch_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svnmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnmatch_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnmatch,_s8,,)(pg, op1, op2);
 }
 
@@ -50,8 +50,8 @@ svbool_t test_svnmatch_s8(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svbool_t test_svnmatch_s16(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnmatch_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svnmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnmatch_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnmatch,_s16,,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svbool_t test_svnmatch_s16(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svbool_t test_svnmatch_u8(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnmatch_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svnmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnmatch_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnmatch,_u8,,)(pg, op1, op2);
 }
 
@@ -88,7 +88,7 @@ svbool_t test_svnmatch_u8(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svbool_t test_svnmatch_u16(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svnmatch'}}
-  // expected-warning at +1 {{implicit declaration of function 'svnmatch_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svnmatch'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svnmatch_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svnmatch,_u16,,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c
index 1d1e56b548a4f..038be1e9d390c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmul.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svpmul_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmul'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmul_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmul'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmul_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmul,_u8,,)(op1, op2);
 }
 
@@ -50,7 +50,7 @@ svuint8_t test_svpmul_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svpmul_n_u8(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmul'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmul_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmul'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmul_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmul,_n_u8,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c
index b9a41cf993077..31c8c4f53d8f3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svpmullb_pair_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_pair_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_pair_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb_pair,_u8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svpmullb_pair_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svpmullb_pair_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_pair_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_pair_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb_pair,_u32,,)(op1, op2);
 }
 
@@ -67,8 +67,8 @@ svuint32_t test_svpmullb_pair_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint8_t test_svpmullb_pair_n_u8(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_pair_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_pair_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb_pair,_n_u8,,)(op1, op2);
 }
 
@@ -88,8 +88,8 @@ svuint8_t test_svpmullb_pair_n_u8(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svpmullb_pair_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_pair_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_pair_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb_pair,_n_u32,,)(op1, op2);
 }
 
@@ -107,8 +107,8 @@ svuint32_t test_svpmullb_pair_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint16_t test_svpmullb_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb,_u16,,)(op1, op2);
 }
 
@@ -126,8 +126,8 @@ svuint16_t test_svpmullb_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint64_t test_svpmullb_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb,_u64,,)(op1, op2);
 }
 
@@ -149,8 +149,8 @@ svuint64_t test_svpmullb_u64(svuint32_t op1, svuint32_t op2)
 //
 svuint16_t test_svpmullb_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb,_n_u16,,)(op1, op2);
 }
 
@@ -172,7 +172,7 @@ svuint16_t test_svpmullb_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint64_t test_svpmullb_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c
index 8ba1789ae8a3f..ca3186a982bba 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullb_128.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint64_t test_svpmullb_pair_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_pair_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_pair_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb_pair,_u64,,)(op1, op2);
 }
 
@@ -50,7 +50,7 @@ svuint64_t test_svpmullb_pair_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svpmullb_pair_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullb_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullb_pair_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullb_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullb_pair_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullb_pair,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c
index 985cb40212ee6..f8f2abfd37879 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svpmullt_pair_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_pair_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_pair_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt_pair,_u8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svpmullt_pair_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svpmullt_pair_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_pair_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_pair_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt_pair,_u32,,)(op1, op2);
 }
 
@@ -67,8 +67,8 @@ svuint32_t test_svpmullt_pair_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint8_t test_svpmullt_pair_n_u8(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_pair_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_pair_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt_pair,_n_u8,,)(op1, op2);
 }
 
@@ -88,8 +88,8 @@ svuint8_t test_svpmullt_pair_n_u8(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svpmullt_pair_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_pair_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_pair_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt_pair,_n_u32,,)(op1, op2);
 }
 
@@ -107,8 +107,8 @@ svuint32_t test_svpmullt_pair_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint16_t test_svpmullt_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt,_u16,,)(op1, op2);
 }
 
@@ -126,8 +126,8 @@ svuint16_t test_svpmullt_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint64_t test_svpmullt_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt,_u64,,)(op1, op2);
 }
 
@@ -149,8 +149,8 @@ svuint64_t test_svpmullt_u64(svuint32_t op1, svuint32_t op2)
 //
 svuint16_t test_svpmullt_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt,_n_u16,,)(op1, op2);
 }
 
@@ -172,7 +172,7 @@ svuint16_t test_svpmullt_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint64_t test_svpmullt_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c
index ca2745e24a290..72bd298097924 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_pmullt_128.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-aes -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint64_t test_svpmullt_pair_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_pair_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_pair_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt_pair,_u64,,)(op1, op2);
 }
 
@@ -50,7 +50,7 @@ svuint64_t test_svpmullt_pair_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svpmullt_pair_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svpmullt_pair'}}
-  // expected-warning at +1 {{implicit declaration of function 'svpmullt_pair_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svpmullt_pair'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svpmullt_pair_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svpmullt_pair,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c
index 0bc986c2aa974..ae781077d2cbf 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qabs.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqabs_s8_z(svbool_t pg, svint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s8,_z,)(pg, op);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svqabs_s8_z(svbool_t pg, svint8_t op)
 //
 svint16_t test_svqabs_s16_z(svbool_t pg, svint16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s16,_z,)(pg, op);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svqabs_s16_z(svbool_t pg, svint16_t op)
 //
 svint32_t test_svqabs_s32_z(svbool_t pg, svint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s32,_z,)(pg, op);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svqabs_s32_z(svbool_t pg, svint32_t op)
 //
 svint64_t test_svqabs_s64_z(svbool_t pg, svint64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s64,_z,)(pg, op);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svqabs_s64_z(svbool_t pg, svint64_t op)
 //
 svint8_t test_svqabs_s8_m(svint8_t inactive, svbool_t pg, svint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s8,_m,)(inactive, pg, op);
 }
 
@@ -122,8 +122,8 @@ svint8_t test_svqabs_s8_m(svint8_t inactive, svbool_t pg, svint8_t op)
 //
 svint16_t test_svqabs_s16_m(svint16_t inactive, svbool_t pg, svint16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s16,_m,)(inactive, pg, op);
 }
 
@@ -141,8 +141,8 @@ svint16_t test_svqabs_s16_m(svint16_t inactive, svbool_t pg, svint16_t op)
 //
 svint32_t test_svqabs_s32_m(svint32_t inactive, svbool_t pg, svint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s32,_m,)(inactive, pg, op);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqabs_s32_m(svint32_t inactive, svbool_t pg, svint32_t op)
 //
 svint64_t test_svqabs_s64_m(svint64_t inactive, svbool_t pg, svint64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s64,_m,)(inactive, pg, op);
 }
 
@@ -177,8 +177,8 @@ svint64_t test_svqabs_s64_m(svint64_t inactive, svbool_t pg, svint64_t op)
 //
 svint8_t test_svqabs_s8_x(svbool_t pg, svint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s8,_x,)(pg, op);
 }
 
@@ -196,8 +196,8 @@ svint8_t test_svqabs_s8_x(svbool_t pg, svint8_t op)
 //
 svint16_t test_svqabs_s16_x(svbool_t pg, svint16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s16,_x,)(pg, op);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svqabs_s16_x(svbool_t pg, svint16_t op)
 //
 svint32_t test_svqabs_s32_x(svbool_t pg, svint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s32,_x,)(pg, op);
 }
 
@@ -234,7 +234,7 @@ svint32_t test_svqabs_s32_x(svbool_t pg, svint32_t op)
 //
 svint64_t test_svqabs_s64_x(svbool_t pg, svint64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqabs_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqabs_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqabs_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqabs_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqabs,_s64,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c
index e3c1b40311d50..1a25d7d1d77c8 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qadd.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s8,_m,)(pg, op1, op2);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svqadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svqadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svqadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s64,_m,)(pg, op1, op2);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svqadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u8,_m,)(pg, op1, op2);
 }
 
@@ -122,8 +122,8 @@ svuint8_t test_svqadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u16,_m,)(pg, op1, op2);
 }
 
@@ -142,8 +142,8 @@ svuint16_t test_svqadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svqadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svqadd_u32_m
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u32,_m,)(pg, op1, op2);
 }
 
@@ -161,8 +161,8 @@ svuint32_t test_svqadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u64,_m,)(pg, op1, op2);
 }
 
@@ -182,8 +182,8 @@ svuint64_t test_svqadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -205,8 +205,8 @@ svint8_t test_svqadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -228,8 +228,8 @@ svint16_t test_svqadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -251,8 +251,8 @@ svint32_t test_svqadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -272,8 +272,8 @@ svint64_t test_svqadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -295,8 +295,8 @@ svuint8_t test_svqadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -318,8 +318,8 @@ svuint16_t test_svqadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint32_t test_svqadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svuint64_t test_svqadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svqadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s8,_z,)(pg, op1, op2);
 }
 
@@ -381,8 +381,8 @@ svint8_t test_svqadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s16,_z,)(pg, op1, op2);
 }
 
@@ -402,8 +402,8 @@ svint16_t test_svqadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s32,_z,)(pg, op1, op2);
 }
 
@@ -423,8 +423,8 @@ svint32_t test_svqadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s64,_z,)(pg, op1, op2);
 }
 
@@ -442,8 +442,8 @@ svint64_t test_svqadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u8,_z,)(pg, op1, op2);
 }
 
@@ -463,8 +463,8 @@ svuint8_t test_svqadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u16,_z,)(pg, op1, op2);
 }
 
@@ -485,8 +485,8 @@ svuint16_t test_svqadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svqadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svqadd_u32_z
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u32,_z,)(pg, op1, op2);
 }
 
@@ -506,8 +506,8 @@ svuint32_t test_svqadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u64,_z,)(pg, op1, op2);
 }
 
@@ -529,8 +529,8 @@ svuint64_t test_svqadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -554,8 +554,8 @@ svint8_t test_svqadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -579,8 +579,8 @@ svint16_t test_svqadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -604,8 +604,8 @@ svint32_t test_svqadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -627,8 +627,8 @@ svint64_t test_svqadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -652,8 +652,8 @@ svuint8_t test_svqadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -677,8 +677,8 @@ svuint16_t test_svqadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -702,8 +702,8 @@ svuint32_t test_svqadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -719,8 +719,8 @@ svuint64_t test_svqadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svqadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s8,_x,)(pg, op1, op2);
 }
 
@@ -738,8 +738,8 @@ svint8_t test_svqadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s16,_x,)(pg, op1, op2);
 }
 
@@ -757,8 +757,8 @@ svint16_t test_svqadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s32,_x,)(pg, op1, op2);
 }
 
@@ -776,8 +776,8 @@ svint32_t test_svqadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_s64,_x,)(pg, op1, op2);
 }
 
@@ -793,8 +793,8 @@ svint64_t test_svqadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u8,_x,)(pg, op1, op2);
 }
 
@@ -812,8 +812,8 @@ svuint8_t test_svqadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u16,_x,)(pg, op1, op2);
 }
 
@@ -832,8 +832,8 @@ svuint16_t test_svqadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svqadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svqadd_u32_x
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u32,_x,)(pg, op1, op2);
 }
 
@@ -851,8 +851,8 @@ svuint32_t test_svqadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_u64,_x,)(pg, op1, op2);
 }
 
@@ -872,8 +872,8 @@ svuint64_t test_svqadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -895,8 +895,8 @@ svint8_t test_svqadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -918,8 +918,8 @@ svint16_t test_svqadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -941,8 +941,8 @@ svint32_t test_svqadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -962,8 +962,8 @@ svint64_t test_svqadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -985,8 +985,8 @@ svuint8_t test_svqadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1008,8 +1008,8 @@ svuint16_t test_svqadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1031,7 +1031,7 @@ svuint32_t test_svqadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqadd_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqadd_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqadd_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqadd,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c
index 8cf55eeea7a7c..53e1c90037a75 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qcadd.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqcadd_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s8,,)(op1, op2, 90);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqcadd_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svqcadd_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s8,,)(op1, op2, 270);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svqcadd_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqcadd_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s16,,)(op1, op2, 90);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svqcadd_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svqcadd_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s16,,)(op1, op2, 270);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svqcadd_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqcadd_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s32,,)(op1, op2, 90);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svqcadd_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svqcadd_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s32,,)(op1, op2, 270);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svqcadd_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqcadd_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s64,,)(op1, op2, 90);
 }
 
@@ -148,7 +148,7 @@ svint64_t test_svqcadd_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svqcadd_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqcadd'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqcadd_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqcadd'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqcadd_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqcadd,_s64,,)(op1, op2, 270);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c
index f6bc7b323da4b..a87ca5a38445d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmlalb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmlalb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svqdmlalb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmlalb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlalb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb,_s64,,)(op1, op2, op3);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmlalb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint16_t test_svqdmlalb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb,_n_s16,,)(op1, op2, op3);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmlalb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svqdmlalb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb,_n_s32,,)(op1, op2, op3);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svqdmlalb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svqdmlalb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb,_n_s64,,)(op1, op2, op3);
 }
 
@@ -143,8 +143,8 @@ svint64_t test_svqdmlalb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svqdmlalb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqdmlalb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqdmlalb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svqdmlalb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlalb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -194,7 +194,7 @@ svint64_t test_svqdmlalb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqdmlalb_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalb_lane,_s64,,)(op1, op2, op3, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c
index b2259c3616a0e..7a8ffd80f63ed 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalbt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmlalbt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalbt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalbt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalbt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmlalbt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svqdmlalbt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalbt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalbt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalbt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmlalbt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlalbt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalbt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalbt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalbt,_s64,,)(op1, op2, op3);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmlalbt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint16_t test_svqdmlalbt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalbt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalbt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalbt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmlalbt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svqdmlalbt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalbt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalbt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalbt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -126,7 +126,7 @@ svint32_t test_svqdmlalbt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svqdmlalbt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalbt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalbt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalbt,_n_s64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c
index 067fee3a2f6bf..2a91cdd45b49e 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlalt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmlalt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmlalt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svqdmlalt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmlalt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlalt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt,_s64,,)(op1, op2, op3);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmlalt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint16_t test_svqdmlalt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmlalt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svqdmlalt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svqdmlalt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svqdmlalt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -143,8 +143,8 @@ svint64_t test_svqdmlalt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svqdmlalt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqdmlalt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqdmlalt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svqdmlalt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlalt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -194,7 +194,7 @@ svint64_t test_svqdmlalt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqdmlalt_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlalt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlalt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlalt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlalt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlalt_lane,_s64,,)(op1, op2, op3, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c
index 1d2f916b89f5f..bf7ed6da4860b 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmlslb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmlslb_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svqdmlslb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmlslb_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlslb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb,_s64,,)(op1, op2, op3);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmlslb_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint16_t test_svqdmlslb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb,_n_s16,,)(op1, op2, op3);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmlslb_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svqdmlslb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb,_n_s32,,)(op1, op2, op3);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svqdmlslb_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svqdmlslb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb,_n_s64,,)(op1, op2, op3);
 }
 
@@ -143,8 +143,8 @@ svint64_t test_svqdmlslb_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svqdmlslb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqdmlslb_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqdmlslb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svqdmlslb_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlslb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -194,7 +194,7 @@ svint64_t test_svqdmlslb_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqdmlslb_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslb_lane,_s64,,)(op1, op2, op3, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c
index c782343db0320..b271b399f3573 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslbt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmlslbt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslbt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslbt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslbt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmlslbt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svqdmlslbt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslbt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslbt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslbt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmlslbt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlslbt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslbt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslbt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslbt,_s64,,)(op1, op2, op3);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmlslbt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint16_t test_svqdmlslbt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslbt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslbt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslbt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmlslbt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svqdmlslbt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslbt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslbt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslbt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -126,7 +126,7 @@ svint32_t test_svqdmlslbt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svqdmlslbt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslbt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslbt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslbt,_n_s64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c
index 5b4f9bd9debcc..5e2b095087413 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmlslt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmlslt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmlslt_s16(svint16_t op1, svint8_t op2, svint8_t op3)
 //
 svint32_t test_svqdmlslt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmlslt_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlslt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt,_s64,,)(op1, op2, op3);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmlslt_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint16_t test_svqdmlslt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmlslt_n_s16(svint16_t op1, svint8_t op2, int8_t op3)
 //
 svint32_t test_svqdmlslt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svqdmlslt_n_s32(svint32_t op1, svint16_t op2, int16_t op3)
 //
 svint64_t test_svqdmlslt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -143,8 +143,8 @@ svint64_t test_svqdmlslt_n_s64(svint64_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svqdmlslt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqdmlslt_lane_s32(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqdmlslt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt_lane,_s32,,)(op1, op2, op3, 7);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svqdmlslt_lane_s32_1(svint32_t op1, svint16_t op2, svint16_t op3)
 //
 svint64_t test_svqdmlslt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -194,7 +194,7 @@ svint64_t test_svqdmlslt_lane_s64(svint64_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqdmlslt_lane_s64_1(svint64_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmlslt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmlslt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmlslt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmlslt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmlslt_lane,_s64,,)(op1, op2, op3, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c
index ea261f5cf7f87..31eacdc895d9f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmulh.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqdmulh_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_s8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqdmulh_s8(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqdmulh_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_s16,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svqdmulh_s16(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqdmulh_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_s32,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svqdmulh_s32(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqdmulh_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_s64,,)(op1, op2);
 }
 
@@ -101,8 +101,8 @@ svint64_t test_svqdmulh_s64(svint64_t op1, svint64_t op2)
 //
 svint8_t test_svqdmulh_n_s8(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_n_s8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svint8_t test_svqdmulh_n_s8(svint8_t op1, int8_t op2)
 //
 svint16_t test_svqdmulh_n_s16(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_n_s16,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svint16_t test_svqdmulh_n_s16(svint16_t op1, int16_t op2)
 //
 svint32_t test_svqdmulh_n_s32(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_n_s32,,)(op1, op2);
 }
 
@@ -164,8 +164,8 @@ svint32_t test_svqdmulh_n_s32(svint32_t op1, int32_t op2)
 //
 svint64_t test_svqdmulh_n_s64(svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh,_n_s64,,)(op1, op2);
 }
 
@@ -181,8 +181,8 @@ svint64_t test_svqdmulh_n_s64(svint64_t op1, int64_t op2)
 //
 svint16_t test_svqdmulh_lane_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh_lane,_s16,,)(op1, op2, 0);
 }
 
@@ -198,8 +198,8 @@ svint16_t test_svqdmulh_lane_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svqdmulh_lane_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh_lane,_s16,,)(op1, op2, 7);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svqdmulh_lane_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqdmulh_lane_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svqdmulh_lane_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svqdmulh_lane_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh_lane,_s32,,)(op1, op2, 3);
 }
 
@@ -249,8 +249,8 @@ svint32_t test_svqdmulh_lane_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqdmulh_lane_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -266,7 +266,7 @@ svint64_t test_svqdmulh_lane_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svqdmulh_lane_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmulh_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmulh_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmulh_lane,_s64,,)(op1, op2, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c
index bb77b329c8dfc..3987a2c932182 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmullb_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmullb_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svqdmullb_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmullb_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svqdmullb_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb,_s64,,)(op1, op2);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmullb_s64(svint32_t op1, svint32_t op2)
 //
 svint16_t test_svqdmullb_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb,_n_s16,,)(op1, op2);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmullb_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svqdmullb_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb,_n_s32,,)(op1, op2);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svqdmullb_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svqdmullb_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb,_n_s64,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svint64_t test_svqdmullb_n_s64(svint32_t op1, int32_t op2)
 //
 svint32_t test_svqdmullb_lane_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqdmullb_lane_s32(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqdmullb_lane_s32_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb_lane,_s32,,)(op1, op2, 7);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svqdmullb_lane_s32_1(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svqdmullb_lane_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -194,7 +194,7 @@ svint64_t test_svqdmullb_lane_s64(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqdmullb_lane_s64_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullb_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullb_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullb_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullb_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullb_lane,_s64,,)(op1, op2, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c
index e15f6a2319d29..cc5db1286ffb9 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qdmullt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svqdmullt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svqdmullt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svqdmullt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svqdmullt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svqdmullt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt,_s64,,)(op1, op2);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svqdmullt_s64(svint32_t op1, svint32_t op2)
 //
 svint16_t test_svqdmullt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt,_n_s16,,)(op1, op2);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svqdmullt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svqdmullt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt,_n_s32,,)(op1, op2);
 }
 
@@ -126,8 +126,8 @@ svint32_t test_svqdmullt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svqdmullt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt,_n_s64,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svint64_t test_svqdmullt_n_s64(svint32_t op1, int32_t op2)
 //
 svint32_t test_svqdmullt_lane_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqdmullt_lane_s32(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqdmullt_lane_s32_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt_lane,_s32,,)(op1, op2, 7);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svqdmullt_lane_s32_1(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svqdmullt_lane_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -194,7 +194,7 @@ svint64_t test_svqdmullt_lane_s64(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqdmullt_lane_s64_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqdmullt_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqdmullt_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqdmullt_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqdmullt_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqdmullt_lane,_s64,,)(op1, op2, 3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c
index 4947182f7f147..20edfc42ed12b 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qneg.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqneg_s8_z(svbool_t pg, svint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s8,_z,)(pg, op);
 }
 
@@ -48,8 +48,8 @@ svint8_t test_svqneg_s8_z(svbool_t pg, svint8_t op)
 //
 svint16_t test_svqneg_s16_z(svbool_t pg, svint16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s16,_z,)(pg, op);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svqneg_s16_z(svbool_t pg, svint16_t op)
 //
 svint32_t test_svqneg_s32_z(svbool_t pg, svint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s32,_z,)(pg, op);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svqneg_s32_z(svbool_t pg, svint32_t op)
 //
 svint64_t test_svqneg_s64_z(svbool_t pg, svint64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s64,_z,)(pg, op);
 }
 
@@ -103,8 +103,8 @@ svint64_t test_svqneg_s64_z(svbool_t pg, svint64_t op)
 //
 svint8_t test_svqneg_s8_m(svint8_t inactive, svbool_t pg, svint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s8,_m,)(inactive, pg, op);
 }
 
@@ -122,8 +122,8 @@ svint8_t test_svqneg_s8_m(svint8_t inactive, svbool_t pg, svint8_t op)
 //
 svint16_t test_svqneg_s16_m(svint16_t inactive, svbool_t pg, svint16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s16,_m,)(inactive, pg, op);
 }
 
@@ -141,8 +141,8 @@ svint16_t test_svqneg_s16_m(svint16_t inactive, svbool_t pg, svint16_t op)
 //
 svint32_t test_svqneg_s32_m(svint32_t inactive, svbool_t pg, svint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s32,_m,)(inactive, pg, op);
 }
 
@@ -160,8 +160,8 @@ svint32_t test_svqneg_s32_m(svint32_t inactive, svbool_t pg, svint32_t op)
 //
 svint64_t test_svqneg_s64_m(svint64_t inactive, svbool_t pg, svint64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s64,_m,)(inactive, pg, op);
 }
 
@@ -177,8 +177,8 @@ svint64_t test_svqneg_s64_m(svint64_t inactive, svbool_t pg, svint64_t op)
 //
 svint8_t test_svqneg_s8_x(svbool_t pg, svint8_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s8,_x,)(pg, op);
 }
 
@@ -196,8 +196,8 @@ svint8_t test_svqneg_s8_x(svbool_t pg, svint8_t op)
 //
 svint16_t test_svqneg_s16_x(svbool_t pg, svint16_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s16,_x,)(pg, op);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svqneg_s16_x(svbool_t pg, svint16_t op)
 //
 svint32_t test_svqneg_s32_x(svbool_t pg, svint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s32,_x,)(pg, op);
 }
 
@@ -234,7 +234,7 @@ svint32_t test_svqneg_s32_x(svbool_t pg, svint32_t op)
 //
 svint64_t test_svqneg_s64_x(svbool_t pg, svint64_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqneg_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqneg_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqneg_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqneg_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqneg,_s64,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c
index 8680956e192dd..3060f8cfca5cf 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdcmlah.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqrdcmlah_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 0);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqrdcmlah_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint8_t test_svqrdcmlah_s8_1(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 90);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svqrdcmlah_s8_1(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint8_t test_svqrdcmlah_s8_2(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 180);
 }
 
@@ -80,8 +80,8 @@ svint8_t test_svqrdcmlah_s8_2(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint8_t test_svqrdcmlah_s8_3(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s8,,)(op1, op2, op3, 270);
 }
 
@@ -97,8 +97,8 @@ svint8_t test_svqrdcmlah_s8_3(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svqrdcmlah_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s16,,)(op1, op2, op3, 0);
 }
 
@@ -114,8 +114,8 @@ svint16_t test_svqrdcmlah_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svqrdcmlah_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s16,,)(op1, op2, op3, 90);
 }
 
@@ -131,8 +131,8 @@ svint16_t test_svqrdcmlah_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svqrdcmlah_s16_2(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s16,,)(op1, op2, op3, 180);
 }
 
@@ -148,8 +148,8 @@ svint16_t test_svqrdcmlah_s16_2(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svqrdcmlah_s16_3(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s16,,)(op1, op2, op3, 270);
 }
 
@@ -165,8 +165,8 @@ svint16_t test_svqrdcmlah_s16_3(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqrdcmlah_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -182,8 +182,8 @@ svint32_t test_svqrdcmlah_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svqrdcmlah_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s32,,)(op1, op2, op3, 90);
 }
 
@@ -199,8 +199,8 @@ svint32_t test_svqrdcmlah_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svqrdcmlah_s32_2(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s32,,)(op1, op2, op3, 180);
 }
 
@@ -216,8 +216,8 @@ svint32_t test_svqrdcmlah_s32_2(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svqrdcmlah_s32_3(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s32,,)(op1, op2, op3, 270);
 }
 
@@ -233,8 +233,8 @@ svint32_t test_svqrdcmlah_s32_3(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqrdcmlah_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -250,8 +250,8 @@ svint64_t test_svqrdcmlah_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svqrdcmlah_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s64,,)(op1, op2, op3, 90);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svqrdcmlah_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svqrdcmlah_s64_2(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s64,,)(op1, op2, op3, 180);
 }
 
@@ -284,8 +284,8 @@ svint64_t test_svqrdcmlah_s64_2(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svqrdcmlah_s64_3(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah,_s64,,)(op1, op2, op3, 270);
 }
 
@@ -301,8 +301,8 @@ svint64_t test_svqrdcmlah_s64_3(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint16_t test_svqrdcmlah_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, 0, 0);
 }
 
@@ -318,8 +318,8 @@ svint16_t test_svqrdcmlah_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svqrdcmlah_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah_lane,_s16,,)(op1, op2, op3, 3, 90);
 }
 
@@ -335,8 +335,8 @@ svint16_t test_svqrdcmlah_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3
 //
 svint32_t test_svqrdcmlah_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah_lane,_s32,,)(op1, op2, op3, 0, 180);
 }
 
@@ -352,7 +352,7 @@ svint32_t test_svqrdcmlah_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svqrdcmlah_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdcmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdcmlah_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdcmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdcmlah_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdcmlah_lane,_s32,,)(op1, op2, op3, 1, 270);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c
index c63494bdafa97..587dd1e7105a4 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlah.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqrdmlah_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqrdmlah_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svqrdmlah_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svqrdmlah_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqrdmlah_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svqrdmlah_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqrdmlah_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_s64,,)(op1, op2, op3);
 }
 
@@ -101,8 +101,8 @@ svint64_t test_svqrdmlah_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint8_t test_svqrdmlah_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_n_s8,,)(op1, op2, op3);
 }
 
@@ -122,8 +122,8 @@ svint8_t test_svqrdmlah_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svqrdmlah_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_n_s16,,)(op1, op2, op3);
 }
 
@@ -143,8 +143,8 @@ svint16_t test_svqrdmlah_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svqrdmlah_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_n_s32,,)(op1, op2, op3);
 }
 
@@ -164,8 +164,8 @@ svint32_t test_svqrdmlah_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svqrdmlah_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah,_n_s64,,)(op1, op2, op3);
 }
 
@@ -181,8 +181,8 @@ svint64_t test_svqrdmlah_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svint16_t test_svqrdmlah_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah_lane,_s16,,)(op1, op2, op3, 0);
 }
 
@@ -198,8 +198,8 @@ svint16_t test_svqrdmlah_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svqrdmlah_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah_lane,_s16,,)(op1, op2, op3, 7);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svqrdmlah_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqrdmlah_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svqrdmlah_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svqrdmlah_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah_lane,_s32,,)(op1, op2, op3, 3);
 }
 
@@ -249,8 +249,8 @@ svint32_t test_svqrdmlah_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqrdmlah_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -266,7 +266,7 @@ svint64_t test_svqrdmlah_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svqrdmlah_lane_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlah_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlah_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlah_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlah_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlah_lane,_s64,,)(op1, op2, op3, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c
index d9f5b8db96a9d..678bcff7d1389 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmlsh.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqrdmlsh_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_s8,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqrdmlsh_s8(svint8_t op1, svint8_t op2, svint8_t op3)
 //
 svint16_t test_svqrdmlsh_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_s16,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svqrdmlsh_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqrdmlsh_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_s32,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svqrdmlsh_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqrdmlsh_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_s64,,)(op1, op2, op3);
 }
 
@@ -101,8 +101,8 @@ svint64_t test_svqrdmlsh_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint8_t test_svqrdmlsh_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_n_s8,,)(op1, op2, op3);
 }
 
@@ -122,8 +122,8 @@ svint8_t test_svqrdmlsh_n_s8(svint8_t op1, svint8_t op2, int8_t op3)
 //
 svint16_t test_svqrdmlsh_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_n_s16,,)(op1, op2, op3);
 }
 
@@ -143,8 +143,8 @@ svint16_t test_svqrdmlsh_n_s16(svint16_t op1, svint16_t op2, int16_t op3)
 //
 svint32_t test_svqrdmlsh_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_n_s32,,)(op1, op2, op3);
 }
 
@@ -164,8 +164,8 @@ svint32_t test_svqrdmlsh_n_s32(svint32_t op1, svint32_t op2, int32_t op3)
 //
 svint64_t test_svqrdmlsh_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh,_n_s64,,)(op1, op2, op3);
 }
 
@@ -181,8 +181,8 @@ svint64_t test_svqrdmlsh_n_s64(svint64_t op1, svint64_t op2, int64_t op3)
 //
 svint16_t test_svqrdmlsh_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh_lane,_s16,,)(op1, op2, op3, 0);
 }
 
@@ -198,8 +198,8 @@ svint16_t test_svqrdmlsh_lane_s16(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svqrdmlsh_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh_lane,_s16,,)(op1, op2, op3, 7);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svqrdmlsh_lane_s16_1(svint16_t op1, svint16_t op2, svint16_t op3)
 //
 svint32_t test_svqrdmlsh_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh_lane,_s32,,)(op1, op2, op3, 0);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svqrdmlsh_lane_s32(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svqrdmlsh_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh_lane,_s32,,)(op1, op2, op3, 3);
 }
 
@@ -249,8 +249,8 @@ svint32_t test_svqrdmlsh_lane_s32_1(svint32_t op1, svint32_t op2, svint32_t op3)
 //
 svint64_t test_svqrdmlsh_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh_lane,_s64,,)(op1, op2, op3, 0);
 }
 
@@ -266,7 +266,7 @@ svint64_t test_svqrdmlsh_lane_s64(svint64_t op1, svint64_t op2, svint64_t op3)
 //
 svint64_t test_svqrdmlsh_lane_s64_1(svint64_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmlsh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmlsh_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmlsh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmlsh_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmlsh_lane,_s64,,)(op1, op2, op3, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c
index 2ec2c36c3f59e..34e88532cb17a 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrdmulh.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqrdmulh_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_s8,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqrdmulh_s8(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqrdmulh_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_s16,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svqrdmulh_s16(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqrdmulh_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_s32,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svqrdmulh_s32(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqrdmulh_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_s64,,)(op1, op2);
 }
 
@@ -101,8 +101,8 @@ svint64_t test_svqrdmulh_s64(svint64_t op1, svint64_t op2)
 //
 svint8_t test_svqrdmulh_n_s8(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_n_s8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svint8_t test_svqrdmulh_n_s8(svint8_t op1, int8_t op2)
 //
 svint16_t test_svqrdmulh_n_s16(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_n_s16,,)(op1, op2);
 }
 
@@ -143,8 +143,8 @@ svint16_t test_svqrdmulh_n_s16(svint16_t op1, int16_t op2)
 //
 svint32_t test_svqrdmulh_n_s32(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_n_s32,,)(op1, op2);
 }
 
@@ -164,8 +164,8 @@ svint32_t test_svqrdmulh_n_s32(svint32_t op1, int32_t op2)
 //
 svint64_t test_svqrdmulh_n_s64(svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh,_n_s64,,)(op1, op2);
 }
 
@@ -181,8 +181,8 @@ svint64_t test_svqrdmulh_n_s64(svint64_t op1, int64_t op2)
 //
 svint16_t test_svqrdmulh_lane_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh_lane,_s16,,)(op1, op2, 0);
 }
 
@@ -198,8 +198,8 @@ svint16_t test_svqrdmulh_lane_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svqrdmulh_lane_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_lane_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_lane_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh_lane,_s16,,)(op1, op2, 7);
 }
 
@@ -215,8 +215,8 @@ svint16_t test_svqrdmulh_lane_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqrdmulh_lane_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh_lane,_s32,,)(op1, op2, 0);
 }
 
@@ -232,8 +232,8 @@ svint32_t test_svqrdmulh_lane_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svqrdmulh_lane_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_lane_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_lane_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh_lane,_s32,,)(op1, op2, 3);
 }
 
@@ -249,8 +249,8 @@ svint32_t test_svqrdmulh_lane_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqrdmulh_lane_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh_lane,_s64,,)(op1, op2, 0);
 }
 
@@ -266,7 +266,7 @@ svint64_t test_svqrdmulh_lane_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svqrdmulh_lane_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrdmulh_lane'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrdmulh_lane_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrdmulh_lane'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrdmulh_lane_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrdmulh_lane,_s64,,)(op1, op2, 1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c
index 81ff5261d0aa9..17333fa03d778 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshl.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svqrshl_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svqrshl_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqrshl_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svqrshl_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqrshl_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svqrshl_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqrshl_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svqrshl_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqrshl_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svqrshl_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svqrshl_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svqrshl_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svqrshl_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svqrshl_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svqrshl_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svqrshl_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svqrshl_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svqrshl_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqrshl_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svqrshl_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqrshl_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svqrshl_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqrshl_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svqrshl_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqrshl_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svqrshl_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svqrshl_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svqrshl_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svqrshl_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svqrshl_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svqrshl_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svqrshl_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svqrshl_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svqrshl_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqrshl_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svqrshl_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqrshl_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svqrshl_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqrshl_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svqrshl_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqrshl_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svqrshl_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svqrshl_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svqrshl_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svqrshl_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svqrshl_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svqrshl_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svqrshl_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svqrshl_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svqrshl_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqrshl_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svqrshl_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqrshl_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svqrshl_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqrshl_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svqrshl_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqrshl_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svqrshl_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svqrshl_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svqrshl_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svqrshl_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svqrshl_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svqrshl_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svqrshl_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svint8_t test_svqrshl_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svqrshl_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqrshl_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svqrshl_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqrshl_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svqrshl_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqrshl_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svqrshl_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqrshl_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svqrshl_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svqrshl_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svqrshl_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svqrshl_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svqrshl_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svqrshl_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svqrshl_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svint8_t test_svqrshl_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svqrshl_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqrshl_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svqrshl_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqrshl_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svqrshl_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqrshl_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svqrshl_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqrshl_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svqrshl_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svqrshl_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svqrshl_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svqrshl_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svqrshl_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svqrshl_n_u64_x(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshl_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshl_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshl,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c
index e137f26024c4a..62f955f8d107b 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqrshrnb_n_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_s16,,)(op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqrshrnb_n_s16(svint16_t op1)
 //
 svint8_t test_svqrshrnb_n_s16_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_s16,,)(op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svqrshrnb_n_s16_1(svint16_t op1)
 //
 svint16_t test_svqrshrnb_n_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_s32,,)(op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svqrshrnb_n_s32(svint32_t op1)
 //
 svint16_t test_svqrshrnb_n_s32_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_s32,,)(op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svqrshrnb_n_s32_1(svint32_t op1)
 //
 svint32_t test_svqrshrnb_n_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_s64,,)(op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svqrshrnb_n_s64(svint64_t op1)
 //
 svint32_t test_svqrshrnb_n_s64_1(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_s64,,)(op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svqrshrnb_n_s64_1(svint64_t op1)
 //
 svuint8_t test_svqrshrnb_n_u16(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_u16,,)(op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svqrshrnb_n_u16(svuint16_t op1)
 //
 svuint8_t test_svqrshrnb_n_u16_1(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_u16,,)(op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svqrshrnb_n_u16_1(svuint16_t op1)
 //
 svuint16_t test_svqrshrnb_n_u32(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_u32,,)(op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svqrshrnb_n_u32(svuint32_t op1)
 //
 svuint16_t test_svqrshrnb_n_u32_1(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_u32,,)(op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svqrshrnb_n_u32_1(svuint32_t op1)
 //
 svuint32_t test_svqrshrnb_n_u64(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_u64,,)(op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svqrshrnb_n_u64(svuint64_t op1)
 //
 svuint32_t test_svqrshrnb_n_u64_1(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnb,_n_u64,,)(op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c
index 1ec162924b0b7..379aee98ee5e5 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqrshrnt_n_s16(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_s16,,)(op, op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqrshrnt_n_s16(svint8_t op, svint16_t op1)
 //
 svint8_t test_svqrshrnt_n_s16_1(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_s16,,)(op, op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svqrshrnt_n_s16_1(svint8_t op, svint16_t op1)
 //
 svint16_t test_svqrshrnt_n_s32(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_s32,,)(op, op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svqrshrnt_n_s32(svint16_t op, svint32_t op1)
 //
 svint16_t test_svqrshrnt_n_s32_1(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_s32,,)(op, op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svqrshrnt_n_s32_1(svint16_t op, svint32_t op1)
 //
 svint32_t test_svqrshrnt_n_s64(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_s64,,)(op, op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svqrshrnt_n_s64(svint32_t op, svint64_t op1)
 //
 svint32_t test_svqrshrnt_n_s64_1(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_s64,,)(op, op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svqrshrnt_n_s64_1(svint32_t op, svint64_t op1)
 //
 svuint8_t test_svqrshrnt_n_u16(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_u16,,)(op, op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svqrshrnt_n_u16(svuint8_t op, svuint16_t op1)
 //
 svuint8_t test_svqrshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_u16,,)(op, op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svqrshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 //
 svuint16_t test_svqrshrnt_n_u32(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_u32,,)(op, op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svqrshrnt_n_u32(svuint16_t op, svuint32_t op1)
 //
 svuint16_t test_svqrshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_u32,,)(op, op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svqrshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 //
 svuint32_t test_svqrshrnt_n_u64(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_u64,,)(op, op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svqrshrnt_n_u64(svuint32_t op, svuint64_t op1)
 //
 svuint32_t test_svqrshrnt_n_u64_1(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrnt,_n_u64,,)(op, op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c
index 6b832b0ffafb4..6cd68c5697f69 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svqrshrunb_n_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunb,_n_s16,,)(op1, 1);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svqrshrunb_n_s16(svint16_t op1)
 //
 svuint8_t test_svqrshrunb_n_s16_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunb,_n_s16,,)(op1, 8);
 }
 
@@ -63,8 +63,8 @@ svuint8_t test_svqrshrunb_n_s16_1(svint16_t op1)
 //
 svuint16_t test_svqrshrunb_n_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunb,_n_s32,,)(op1, 1);
 }
 
@@ -80,8 +80,8 @@ svuint16_t test_svqrshrunb_n_s32(svint32_t op1)
 //
 svuint16_t test_svqrshrunb_n_s32_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunb,_n_s32,,)(op1, 16);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svqrshrunb_n_s32_1(svint32_t op1)
 //
 svuint32_t test_svqrshrunb_n_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunb,_n_s64,,)(op1, 1);
 }
 
@@ -114,7 +114,7 @@ svuint32_t test_svqrshrunb_n_s64(svint64_t op1)
 //
 svuint32_t test_svqrshrunb_n_s64_1(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunb,_n_s64,,)(op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c
index e74bddd9842b9..fc3b5a0db7b73 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qrshrunt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svqrshrunt_n_s16(svuint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunt,_n_s16,,)(op, op1, 1);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svqrshrunt_n_s16(svuint8_t op, svint16_t op1)
 //
 svuint8_t test_svqrshrunt_n_s16_1(svuint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunt,_n_s16,,)(op, op1, 8);
 }
 
@@ -63,8 +63,8 @@ svuint8_t test_svqrshrunt_n_s16_1(svuint8_t op, svint16_t op1)
 //
 svuint16_t test_svqrshrunt_n_s32(svuint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunt,_n_s32,,)(op, op1, 1);
 }
 
@@ -80,8 +80,8 @@ svuint16_t test_svqrshrunt_n_s32(svuint16_t op, svint32_t op1)
 //
 svuint16_t test_svqrshrunt_n_s32_1(svuint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunt,_n_s32,,)(op, op1, 16);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svqrshrunt_n_s32_1(svuint16_t op, svint32_t op1)
 //
 svuint32_t test_svqrshrunt_n_s64(svuint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunt,_n_s64,,)(op, op1, 1);
 }
 
@@ -114,7 +114,7 @@ svuint32_t test_svqrshrunt_n_s64(svuint32_t op, svint64_t op1)
 //
 svuint32_t test_svqrshrunt_n_s64_1(svuint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqrshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqrshrunt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqrshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqrshrunt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqrshrunt,_n_s64,,)(op, op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c
index 7646df97b0139..9ab210b23d9e5 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshl.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svqshl_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svqshl_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqshl_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svqshl_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqshl_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svqshl_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqshl_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svqshl_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqshl_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svqshl_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svqshl_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svqshl_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svqshl_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svqshl_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svqshl_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svqshl_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svqshl_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svqshl_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqshl_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svqshl_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqshl_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svqshl_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqshl_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svqshl_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqshl_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svqshl_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svqshl_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svqshl_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svqshl_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svqshl_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svqshl_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svqshl_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svqshl_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svqshl_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqshl_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svqshl_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqshl_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svqshl_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqshl_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svqshl_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqshl_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svqshl_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svqshl_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svqshl_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svqshl_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svqshl_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svqshl_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svqshl_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svqshl_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svqshl_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqshl_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svqshl_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqshl_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svqshl_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqshl_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svqshl_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqshl_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svqshl_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svqshl_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svqshl_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svqshl_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svqshl_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svqshl_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svqshl_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svint8_t test_svqshl_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svqshl_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqshl_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svqshl_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqshl_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svqshl_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqshl_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svqshl_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqshl_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svqshl_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svqshl_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svqshl_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svqshl_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svqshl_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svqshl_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svqshl_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svint8_t test_svqshl_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svqshl_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqshl_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svqshl_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqshl_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svqshl_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqshl_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svqshl_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqshl_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svqshl_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svqshl_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svqshl_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svqshl_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svqshl_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svqshl_n_u64_x(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshl_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshl_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshl,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c
index f90d37082725f..b96903cc25b10 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshlu.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svuint8_t test_svqshlu_n_s8_z(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s8,_z,)(pg, op1, 0);
 }
 
@@ -50,8 +50,8 @@ svuint8_t test_svqshlu_n_s8_z(svbool_t pg, svint8_t op1)
 //
 svuint8_t test_svqshlu_n_s8_z_1(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s8,_z,)(pg, op1, 7);
 }
 
@@ -71,8 +71,8 @@ svuint8_t test_svqshlu_n_s8_z_1(svbool_t pg, svint8_t op1)
 //
 svuint16_t test_svqshlu_n_s16_z(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s16,_z,)(pg, op1, 0);
 }
 
@@ -92,8 +92,8 @@ svuint16_t test_svqshlu_n_s16_z(svbool_t pg, svint16_t op1)
 //
 svuint16_t test_svqshlu_n_s16_z_1(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s16,_z,)(pg, op1, 15);
 }
 
@@ -113,8 +113,8 @@ svuint16_t test_svqshlu_n_s16_z_1(svbool_t pg, svint16_t op1)
 //
 svuint32_t test_svqshlu_n_s32_z(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s32,_z,)(pg, op1, 0);
 }
 
@@ -134,8 +134,8 @@ svuint32_t test_svqshlu_n_s32_z(svbool_t pg, svint32_t op1)
 //
 svuint32_t test_svqshlu_n_s32_z_1(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s32,_z,)(pg, op1, 31);
 }
 
@@ -155,8 +155,8 @@ svuint32_t test_svqshlu_n_s32_z_1(svbool_t pg, svint32_t op1)
 //
 svuint64_t test_svqshlu_n_s64_z(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s64,_z,)(pg, op1, 0);
 }
 
@@ -176,8 +176,8 @@ svuint64_t test_svqshlu_n_s64_z(svbool_t pg, svint64_t op1)
 //
 svuint64_t test_svqshlu_n_s64_z_1(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s64,_z,)(pg, op1, 63);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svqshlu_n_s64_z_1(svbool_t pg, svint64_t op1)
 //
 svuint8_t test_svqshlu_n_s8_m(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s8,_m,)(pg, op1, 0);
 }
 
@@ -210,8 +210,8 @@ svuint8_t test_svqshlu_n_s8_m(svbool_t pg, svint8_t op1)
 //
 svuint8_t test_svqshlu_n_s8_m_1(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s8,_m,)(pg, op1, 7);
 }
 
@@ -229,8 +229,8 @@ svuint8_t test_svqshlu_n_s8_m_1(svbool_t pg, svint8_t op1)
 //
 svuint16_t test_svqshlu_n_s16_m(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s16,_m,)(pg, op1, 0);
 }
 
@@ -248,8 +248,8 @@ svuint16_t test_svqshlu_n_s16_m(svbool_t pg, svint16_t op1)
 //
 svuint16_t test_svqshlu_n_s16_m_1(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s16,_m,)(pg, op1, 15);
 }
 
@@ -267,8 +267,8 @@ svuint16_t test_svqshlu_n_s16_m_1(svbool_t pg, svint16_t op1)
 //
 svuint32_t test_svqshlu_n_s32_m(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s32,_m,)(pg, op1, 0);
 }
 
@@ -286,8 +286,8 @@ svuint32_t test_svqshlu_n_s32_m(svbool_t pg, svint32_t op1)
 //
 svuint32_t test_svqshlu_n_s32_m_1(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s32,_m,)(pg, op1, 31);
 }
 
@@ -305,8 +305,8 @@ svuint32_t test_svqshlu_n_s32_m_1(svbool_t pg, svint32_t op1)
 //
 svuint64_t test_svqshlu_n_s64_m(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s64,_m,)(pg, op1, 0);
 }
 
@@ -324,8 +324,8 @@ svuint64_t test_svqshlu_n_s64_m(svbool_t pg, svint64_t op1)
 //
 svuint64_t test_svqshlu_n_s64_m_1(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s64,_m,)(pg, op1, 63);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svqshlu_n_s64_m_1(svbool_t pg, svint64_t op1)
 //
 svuint8_t test_svqshlu_n_s8_x(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s8,_x,)(pg, op1, 0);
 }
 
@@ -358,8 +358,8 @@ svuint8_t test_svqshlu_n_s8_x(svbool_t pg, svint8_t op1)
 //
 svuint8_t test_svqshlu_n_s8_x_1(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s8,_x,)(pg, op1, 7);
 }
 
@@ -377,8 +377,8 @@ svuint8_t test_svqshlu_n_s8_x_1(svbool_t pg, svint8_t op1)
 //
 svuint16_t test_svqshlu_n_s16_x(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s16,_x,)(pg, op1, 0);
 }
 
@@ -396,8 +396,8 @@ svuint16_t test_svqshlu_n_s16_x(svbool_t pg, svint16_t op1)
 //
 svuint16_t test_svqshlu_n_s16_x_1(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s16,_x,)(pg, op1, 15);
 }
 
@@ -415,8 +415,8 @@ svuint16_t test_svqshlu_n_s16_x_1(svbool_t pg, svint16_t op1)
 //
 svuint32_t test_svqshlu_n_s32_x(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s32,_x,)(pg, op1, 0);
 }
 
@@ -434,8 +434,8 @@ svuint32_t test_svqshlu_n_s32_x(svbool_t pg, svint32_t op1)
 //
 svuint32_t test_svqshlu_n_s32_x_1(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s32,_x,)(pg, op1, 31);
 }
 
@@ -453,8 +453,8 @@ svuint32_t test_svqshlu_n_s32_x_1(svbool_t pg, svint32_t op1)
 //
 svuint64_t test_svqshlu_n_s64_x(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s64,_x,)(pg, op1, 0);
 }
 
@@ -472,7 +472,7 @@ svuint64_t test_svqshlu_n_s64_x(svbool_t pg, svint64_t op1)
 //
 svuint64_t test_svqshlu_n_s64_x_1(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshlu_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshlu_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshlu_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshlu_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshlu,_n_s64,_x,)(pg, op1, 63);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c
index 30c204e783cd5..13ce0e2a5326c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqshrnb_n_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_s16,,)(op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqshrnb_n_s16(svint16_t op1)
 //
 svint8_t test_svqshrnb_n_s16_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_s16,,)(op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svqshrnb_n_s16_1(svint16_t op1)
 //
 svint16_t test_svqshrnb_n_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_s32,,)(op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svqshrnb_n_s32(svint32_t op1)
 //
 svint16_t test_svqshrnb_n_s32_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_s32,,)(op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svqshrnb_n_s32_1(svint32_t op1)
 //
 svint32_t test_svqshrnb_n_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_s64,,)(op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svqshrnb_n_s64(svint64_t op1)
 //
 svint32_t test_svqshrnb_n_s64_1(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_s64,,)(op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svqshrnb_n_s64_1(svint64_t op1)
 //
 svuint8_t test_svqshrnb_n_u16(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_u16,,)(op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svqshrnb_n_u16(svuint16_t op1)
 //
 svuint8_t test_svqshrnb_n_u16_1(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_u16,,)(op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svqshrnb_n_u16_1(svuint16_t op1)
 //
 svuint16_t test_svqshrnb_n_u32(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_u32,,)(op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svqshrnb_n_u32(svuint32_t op1)
 //
 svuint16_t test_svqshrnb_n_u32_1(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_u32,,)(op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svqshrnb_n_u32_1(svuint32_t op1)
 //
 svuint32_t test_svqshrnb_n_u64(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_u64,,)(op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svqshrnb_n_u64(svuint64_t op1)
 //
 svuint32_t test_svqshrnb_n_u64_1(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnb,_n_u64,,)(op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c
index 06f842e92df61..93d7722efd2f4 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqshrnt_n_s16(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_s16,,)(op, op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqshrnt_n_s16(svint8_t op, svint16_t op1)
 //
 svint8_t test_svqshrnt_n_s16_1(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_s16,,)(op, op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svqshrnt_n_s16_1(svint8_t op, svint16_t op1)
 //
 svint16_t test_svqshrnt_n_s32(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_s32,,)(op, op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svqshrnt_n_s32(svint16_t op, svint32_t op1)
 //
 svint16_t test_svqshrnt_n_s32_1(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_s32,,)(op, op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svqshrnt_n_s32_1(svint16_t op, svint32_t op1)
 //
 svint32_t test_svqshrnt_n_s64(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_s64,,)(op, op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svqshrnt_n_s64(svint32_t op, svint64_t op1)
 //
 svint32_t test_svqshrnt_n_s64_1(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_s64,,)(op, op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svqshrnt_n_s64_1(svint32_t op, svint64_t op1)
 //
 svuint8_t test_svqshrnt_n_u16(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_u16,,)(op, op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svqshrnt_n_u16(svuint8_t op, svuint16_t op1)
 //
 svuint8_t test_svqshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_u16,,)(op, op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svqshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 //
 svuint16_t test_svqshrnt_n_u32(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_u32,,)(op, op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svqshrnt_n_u32(svuint16_t op, svuint32_t op1)
 //
 svuint16_t test_svqshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_u32,,)(op, op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svqshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 //
 svuint32_t test_svqshrnt_n_u64(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_u64,,)(op, op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svqshrnt_n_u64(svuint32_t op, svuint64_t op1)
 //
 svuint32_t test_svqshrnt_n_u64_1(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrnt,_n_u64,,)(op, op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c
index 695cd47502470..8e25ec981eaff 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svqshrunb_n_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunb,_n_s16,,)(op1, 1);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svqshrunb_n_s16(svint16_t op1)
 //
 svuint8_t test_svqshrunb_n_s16_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunb,_n_s16,,)(op1, 8);
 }
 
@@ -63,8 +63,8 @@ svuint8_t test_svqshrunb_n_s16_1(svint16_t op1)
 //
 svuint16_t test_svqshrunb_n_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunb,_n_s32,,)(op1, 1);
 }
 
@@ -80,8 +80,8 @@ svuint16_t test_svqshrunb_n_s32(svint32_t op1)
 //
 svuint16_t test_svqshrunb_n_s32_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunb,_n_s32,,)(op1, 16);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svqshrunb_n_s32_1(svint32_t op1)
 //
 svuint32_t test_svqshrunb_n_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunb,_n_s64,,)(op1, 1);
 }
 
@@ -114,7 +114,7 @@ svuint32_t test_svqshrunb_n_s64(svint64_t op1)
 //
 svuint32_t test_svqshrunb_n_s64_1(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunb,_n_s64,,)(op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c
index 26219fb1a1dc4..7eb302cb23f76 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qshrunt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svqshrunt_n_s16(svuint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunt,_n_s16,,)(op, op1, 1);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svqshrunt_n_s16(svuint8_t op, svint16_t op1)
 //
 svuint8_t test_svqshrunt_n_s16_1(svuint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunt,_n_s16,,)(op, op1, 8);
 }
 
@@ -63,8 +63,8 @@ svuint8_t test_svqshrunt_n_s16_1(svuint8_t op, svint16_t op1)
 //
 svuint16_t test_svqshrunt_n_s32(svuint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunt,_n_s32,,)(op, op1, 1);
 }
 
@@ -80,8 +80,8 @@ svuint16_t test_svqshrunt_n_s32(svuint16_t op, svint32_t op1)
 //
 svuint16_t test_svqshrunt_n_s32_1(svuint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunt,_n_s32,,)(op, op1, 16);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svqshrunt_n_s32_1(svuint16_t op, svint32_t op1)
 //
 svuint32_t test_svqshrunt_n_s64(svuint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunt,_n_s64,,)(op, op1, 1);
 }
 
@@ -114,7 +114,7 @@ svuint32_t test_svqshrunt_n_s64(svuint32_t op, svint64_t op1)
 //
 svuint32_t test_svqshrunt_n_s64_1(svuint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqshrunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqshrunt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqshrunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqshrunt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqshrunt,_n_s64,,)(op, op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c
index 687687e33cf2f..33f986889f227 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsub.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svqsub_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svqsub_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqsub_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svqsub_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqsub_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svqsub_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqsub_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svqsub_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqsub_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svqsub_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqsub_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svqsub_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svqsub_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svqsub_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqsub_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svqsub_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqsub_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svqsub_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqsub_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svqsub_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqsub_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svqsub_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqsub_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svqsub_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqsub_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svqsub_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqsub_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svqsub_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svqsub_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svqsub_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqsub_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svqsub_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqsub_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svqsub_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqsub_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svqsub_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqsub_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svqsub_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqsub_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svqsub_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqsub_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svqsub_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqsub_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svqsub_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svqsub_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svqsub_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqsub_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svqsub_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqsub_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svqsub_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqsub_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svqsub_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqsub_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svqsub_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqsub_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svqsub_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqsub_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svqsub_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqsub_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svqsub_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqsub_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svqsub_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqsub_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svqsub_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svqsub_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svqsub_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqsub_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svqsub_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqsub_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svqsub_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqsub_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svqsub_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqsub_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svqsub_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqsub_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svqsub_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqsub_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svqsub_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqsub_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svqsub_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svqsub_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svqsub_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqsub_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svqsub_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqsub_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svqsub_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqsub_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svqsub_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqsub_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svqsub_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqsub_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svqsub_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqsub_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svqsub_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqsub_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsub_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsub_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsub_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsub_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsub,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c
index d202b29607d6d..4f6421dc1df5a 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qsubr.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svqsubr_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svqsubr_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqsubr_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svqsubr_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqsubr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svqsubr_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqsubr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svqsubr_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqsubr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svqsubr_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqsubr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svqsubr_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svqsubr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svqsubr_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqsubr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svqsubr_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqsubr_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svqsubr_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqsubr_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svqsubr_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqsubr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svqsubr_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqsubr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svqsubr_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqsubr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svqsubr_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqsubr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svqsubr_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svqsubr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svqsubr_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqsubr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svqsubr_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqsubr_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svqsubr_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svqsubr_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svqsubr_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svqsubr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svqsubr_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svqsubr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svqsubr_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svqsubr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svqsubr_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svqsubr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svqsubr_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svqsubr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svqsubr_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svqsubr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svqsubr_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svqsubr_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svqsubr_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqsubr_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svqsubr_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqsubr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svqsubr_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqsubr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svqsubr_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqsubr_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svqsubr_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqsubr_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svqsubr_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqsubr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svqsubr_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqsubr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svqsubr_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svqsubr_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svqsubr_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqsubr_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svqsubr_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqsubr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svqsubr_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqsubr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svqsubr_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqsubr_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svqsubr_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqsubr_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svqsubr_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqsubr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svqsubr_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqsubr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svqsubr_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svqsubr_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svqsubr_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svqsubr_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svqsubr_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svqsubr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svqsubr_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svqsubr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svqsubr_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svqsubr_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svqsubr_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svqsubr_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svqsubr_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svqsubr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svqsubr_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svqsubr_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqsubr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqsubr_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svqsubr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqsubr_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqsubr,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c
index 31aeb17b7fcc3..5ba46dfc8c63a 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqxtnb_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnb,_s16,,)(op1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqxtnb_s16(svint16_t op1)
 //
 svint16_t test_svqxtnb_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnb,_s32,,)(op1);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svqxtnb_s32(svint32_t op1)
 //
 svint32_t test_svqxtnb_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnb,_s64,,)(op1);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svqxtnb_s64(svint64_t op1)
 //
 svuint8_t test_svqxtnb_u16(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnb,_u16,,)(op1);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svqxtnb_u16(svuint16_t op1)
 //
 svuint16_t test_svqxtnb_u32(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnb,_u32,,)(op1);
 }
 
@@ -114,7 +114,7 @@ svuint16_t test_svqxtnb_u32(svuint32_t op1)
 //
 svuint32_t test_svqxtnb_u64(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnb,_u64,,)(op1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c
index 6d065947289c3..9650f0f40665f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svqxtnt_s16(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnt,_s16,,)(op, op1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svqxtnt_s16(svint8_t op, svint16_t op1)
 //
 svint16_t test_svqxtnt_s32(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnt,_s32,,)(op, op1);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svqxtnt_s32(svint16_t op, svint32_t op1)
 //
 svint32_t test_svqxtnt_s64(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnt,_s64,,)(op, op1);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svqxtnt_s64(svint32_t op, svint64_t op1)
 //
 svuint8_t test_svqxtnt_u16(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnt,_u16,,)(op, op1);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svqxtnt_u16(svuint8_t op, svuint16_t op1)
 //
 svuint16_t test_svqxtnt_u32(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnt,_u32,,)(op, op1);
 }
 
@@ -114,7 +114,7 @@ svuint16_t test_svqxtnt_u32(svuint16_t op, svuint32_t op1)
 //
 svuint32_t test_svqxtnt_u64(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtnt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtnt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtnt,_u64,,)(op, op1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c
index 5f19cd80b6e41..625c7ea84e3bd 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svqxtunb_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtunb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtunb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtunb,_s16,,)(op1);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svqxtunb_s16(svint16_t op1)
 //
 svuint16_t test_svqxtunb_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtunb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtunb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtunb,_s32,,)(op1);
 }
 
@@ -63,7 +63,7 @@ svuint16_t test_svqxtunb_s32(svint32_t op1)
 //
 svuint32_t test_svqxtunb_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtunb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtunb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtunb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtunb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtunb,_s64,,)(op1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c
index 06583925aba76..458d7a380584d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_qxtunt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svuint8_t test_svqxtunt_u16(svuint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtunt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtunt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtunt,_s16,,)(op, op1);
 }
 
@@ -46,8 +46,8 @@ svuint8_t test_svqxtunt_u16(svuint8_t op, svint16_t op1)
 //
 svuint16_t test_svqxtunt_u32(svuint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtunt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtunt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtunt,_s32,,)(op, op1);
 }
 
@@ -63,7 +63,7 @@ svuint16_t test_svqxtunt_u32(svuint16_t op, svint32_t op1)
 //
 svuint32_t test_svqxtunt_u64(svuint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svqxtunt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svqxtunt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svqxtunt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svqxtunt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svqxtunt,_s64,,)(op, op1);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c
index e9e006b1660f8..d1a8b0a07c8a9 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svraddhnb_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svraddhnb_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svraddhnb_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svraddhnb_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svraddhnb_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svraddhnb_s64(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svraddhnb_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svraddhnb_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svraddhnb_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svraddhnb_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svraddhnb_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svraddhnb_u64(svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svraddhnb_n_s16(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svraddhnb_n_s16(svint16_t op1, int16_t op2)
 //
 svint16_t test_svraddhnb_n_s32(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svraddhnb_n_s32(svint32_t op1, int32_t op2)
 //
 svint32_t test_svraddhnb_n_s64(svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svraddhnb_n_s64(svint64_t op1, int64_t op2)
 //
 svuint8_t test_svraddhnb_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svraddhnb_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint16_t test_svraddhnb_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svraddhnb_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint32_t test_svraddhnb_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c
index 7f8446e42d6d9..894a6a1395591 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_raddhnt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svraddhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svraddhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svraddhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svraddhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svraddhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svraddhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svraddhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svraddhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svraddhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svraddhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svraddhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svraddhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svraddhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svraddhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 //
 svint16_t test_svraddhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svraddhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svraddhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svraddhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svraddhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svraddhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint16_t test_svraddhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svraddhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint32_t test_svraddhnt_n_u64(svuint32_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svraddhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svraddhnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svraddhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svraddhnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svraddhnt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c
index e503244e9ed95..709a329fd1799 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rax1.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-sha3 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-sha3 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-sha3 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint64_t test_svrax1_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrax1'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrax1_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrax1'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrax1_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrax1,_s64,,)(op1, op2);
 }
 
@@ -46,7 +46,7 @@ svint64_t test_svrax1_s64(svint64_t op1, svint64_t op2)
 //
 svuint64_t test_svrax1_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrax1'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrax1_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrax1'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrax1_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrax1,_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c
index bf12325b8bd7e..4fa578da0e7b5 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_recpe.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svuint32_t test_svrecpe_u32_z(svbool_t pg, svuint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrecpe_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrecpe_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrecpe_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrecpe_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrecpe,_u32,_z,)(pg, op);
 }
 
@@ -50,8 +50,8 @@ svuint32_t test_svrecpe_u32_z(svbool_t pg, svuint32_t op)
 //
 svuint32_t test_svrecpe_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrecpe_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrecpe_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrecpe_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrecpe_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrecpe,_u32,_m,)(inactive, pg, op);
 }
 
@@ -69,7 +69,7 @@ svuint32_t test_svrecpe_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op)
 //
 svuint32_t test_svrecpe_u32_x(svbool_t pg, svuint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrecpe_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrecpe_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrecpe_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrecpe_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrecpe,_u32,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c
index 39e438bf18054..d496470c67102 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rhadd.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 #include <arm_sve.h>
 
 #ifdef SVE_OVERLOADED_FORMS
@@ -28,8 +28,8 @@
 //
 svint8_t test_svrhadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s8,_m,)(pg, op1, op2);
 }
 
@@ -47,8 +47,8 @@ svint8_t test_svrhadd_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrhadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s16,_m,)(pg, op1, op2);
 }
 
@@ -66,8 +66,8 @@ svint16_t test_svrhadd_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrhadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s32,_m,)(pg, op1, op2);
 }
 
@@ -85,8 +85,8 @@ svint32_t test_svrhadd_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrhadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s64,_m,)(pg, op1, op2);
 }
 
@@ -102,8 +102,8 @@ svint64_t test_svrhadd_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrhadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u8,_m,)(pg, op1, op2);
 }
 
@@ -121,8 +121,8 @@ svuint8_t test_svrhadd_u8_m(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svrhadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u16,_m,)(pg, op1, op2);
 }
 
@@ -141,8 +141,8 @@ svuint16_t test_svrhadd_u16_m(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svrhadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svrhadd_u32_m
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u32,_m,)(pg, op1, op2);
 }
 
@@ -160,8 +160,8 @@ svuint32_t test_svrhadd_u32_m(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svrhadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u64,_m,)(pg, op1, op2);
 }
 
@@ -181,8 +181,8 @@ svuint64_t test_svrhadd_u64_m(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svrhadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -204,8 +204,8 @@ svint8_t test_svrhadd_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svrhadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -227,8 +227,8 @@ svint16_t test_svrhadd_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svrhadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svrhadd_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svrhadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -271,8 +271,8 @@ svint64_t test_svrhadd_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrhadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -294,8 +294,8 @@ svuint8_t test_svrhadd_n_u8_m(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svrhadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -317,8 +317,8 @@ svuint16_t test_svrhadd_n_u16_m(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svrhadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -340,8 +340,8 @@ svuint32_t test_svrhadd_n_u32_m(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svrhadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -359,8 +359,8 @@ svuint64_t test_svrhadd_n_u64_m(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svrhadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s8,_z,)(pg, op1, op2);
 }
 
@@ -380,8 +380,8 @@ svint8_t test_svrhadd_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrhadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s16,_z,)(pg, op1, op2);
 }
 
@@ -401,8 +401,8 @@ svint16_t test_svrhadd_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrhadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s32,_z,)(pg, op1, op2);
 }
 
@@ -422,8 +422,8 @@ svint32_t test_svrhadd_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrhadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s64,_z,)(pg, op1, op2);
 }
 
@@ -441,8 +441,8 @@ svint64_t test_svrhadd_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrhadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u8,_z,)(pg, op1, op2);
 }
 
@@ -462,8 +462,8 @@ svuint8_t test_svrhadd_u8_z(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svrhadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u16,_z,)(pg, op1, op2);
 }
 
@@ -484,8 +484,8 @@ svuint16_t test_svrhadd_u16_z(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svrhadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svrhadd_u32_z
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u32,_z,)(pg, op1, op2);
 }
 
@@ -505,8 +505,8 @@ svuint32_t test_svrhadd_u32_z(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svrhadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u64,_z,)(pg, op1, op2);
 }
 
@@ -528,8 +528,8 @@ svuint64_t test_svrhadd_u64_z(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svrhadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -553,8 +553,8 @@ svint8_t test_svrhadd_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svrhadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -578,8 +578,8 @@ svint16_t test_svrhadd_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svrhadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -603,8 +603,8 @@ svint32_t test_svrhadd_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svrhadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -626,8 +626,8 @@ svint64_t test_svrhadd_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrhadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -651,8 +651,8 @@ svuint8_t test_svrhadd_n_u8_z(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svrhadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -676,8 +676,8 @@ svuint16_t test_svrhadd_n_u16_z(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svrhadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -701,8 +701,8 @@ svuint32_t test_svrhadd_n_u32_z(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svrhadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -718,8 +718,8 @@ svuint64_t test_svrhadd_n_u64_z(svbool_t pg, svuint64_t op1, uint64_t op2)
 //
 svint8_t test_svrhadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s8,_x,)(pg, op1, op2);
 }
 
@@ -737,8 +737,8 @@ svint8_t test_svrhadd_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrhadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s16,_x,)(pg, op1, op2);
 }
 
@@ -756,8 +756,8 @@ svint16_t test_svrhadd_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrhadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s32,_x,)(pg, op1, op2);
 }
 
@@ -775,8 +775,8 @@ svint32_t test_svrhadd_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrhadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_s64,_x,)(pg, op1, op2);
 }
 
@@ -792,8 +792,8 @@ svint64_t test_svrhadd_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrhadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u8,_x,)(pg, op1, op2);
 }
 
@@ -811,8 +811,8 @@ svuint8_t test_svrhadd_u8_x(svbool_t pg, svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svrhadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u16,_x,)(pg, op1, op2);
 }
 
@@ -831,8 +831,8 @@ svuint16_t test_svrhadd_u16_x(svbool_t pg, svuint16_t op1, svuint16_t op2)
 svuint32_t test_svrhadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svrhadd_u32_x
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u32,_x,)(pg, op1, op2);
 }
 
@@ -850,8 +850,8 @@ svuint32_t test_svrhadd_u32_x(svbool_t pg, svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svrhadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_u64,_x,)(pg, op1, op2);
 }
 
@@ -871,8 +871,8 @@ svuint64_t test_svrhadd_u64_x(svbool_t pg, svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svrhadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -894,8 +894,8 @@ svint8_t test_svrhadd_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svrhadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -917,8 +917,8 @@ svint16_t test_svrhadd_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svrhadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -940,8 +940,8 @@ svint32_t test_svrhadd_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svrhadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -961,8 +961,8 @@ svint64_t test_svrhadd_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrhadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -984,8 +984,8 @@ svuint8_t test_svrhadd_n_u8_x(svbool_t pg, svuint8_t op1, uint8_t op2)
 //
 svuint16_t test_svrhadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1007,8 +1007,8 @@ svuint16_t test_svrhadd_n_u16_x(svbool_t pg, svuint16_t op1, uint16_t op2)
 //
 svuint32_t test_svrhadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1030,7 +1030,7 @@ svuint32_t test_svrhadd_n_u32_x(svbool_t pg, svuint32_t op1, uint32_t op2)
 //
 svuint64_t test_svrhadd_n_u64_x(svbool_t pg, svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrhadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrhadd_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrhadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrhadd_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrhadd,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c
index 4f234497368bc..c3a0e0daa57a3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshl.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svrshl_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s8,_z,)(pg, op1, op2);
 }
 
@@ -52,8 +52,8 @@ svint8_t test_svrshl_s8_z(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrshl_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s16,_z,)(pg, op1, op2);
 }
 
@@ -73,8 +73,8 @@ svint16_t test_svrshl_s16_z(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrshl_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s32,_z,)(pg, op1, op2);
 }
 
@@ -94,8 +94,8 @@ svint32_t test_svrshl_s32_z(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrshl_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s64,_z,)(pg, op1, op2);
 }
 
@@ -113,8 +113,8 @@ svint64_t test_svrshl_s64_z(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrshl_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u8,_z,)(pg, op1, op2);
 }
 
@@ -134,8 +134,8 @@ svuint8_t test_svrshl_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svrshl_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u16,_z,)(pg, op1, op2);
 }
 
@@ -155,8 +155,8 @@ svuint16_t test_svrshl_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svrshl_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u32,_z,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svrshl_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svrshl_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u64,_z,)(pg, op1, op2);
 }
 
@@ -193,8 +193,8 @@ svuint64_t test_svrshl_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svrshl_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s8,_m,)(pg, op1, op2);
 }
 
@@ -212,8 +212,8 @@ svint8_t test_svrshl_s8_m(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrshl_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s16,_m,)(pg, op1, op2);
 }
 
@@ -231,8 +231,8 @@ svint16_t test_svrshl_s16_m(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrshl_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s32,_m,)(pg, op1, op2);
 }
 
@@ -250,8 +250,8 @@ svint32_t test_svrshl_s32_m(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrshl_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s64,_m,)(pg, op1, op2);
 }
 
@@ -267,8 +267,8 @@ svint64_t test_svrshl_s64_m(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrshl_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u8,_m,)(pg, op1, op2);
 }
 
@@ -286,8 +286,8 @@ svuint8_t test_svrshl_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svrshl_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u16,_m,)(pg, op1, op2);
 }
 
@@ -305,8 +305,8 @@ svuint16_t test_svrshl_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svrshl_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u32,_m,)(pg, op1, op2);
 }
 
@@ -324,8 +324,8 @@ svuint32_t test_svrshl_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svrshl_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u64,_m,)(pg, op1, op2);
 }
 
@@ -341,8 +341,8 @@ svuint64_t test_svrshl_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svrshl_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s8,_x,)(pg, op1, op2);
 }
 
@@ -360,8 +360,8 @@ svint8_t test_svrshl_s8_x(svbool_t pg, svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrshl_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s16,_x,)(pg, op1, op2);
 }
 
@@ -379,8 +379,8 @@ svint16_t test_svrshl_s16_x(svbool_t pg, svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrshl_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s32,_x,)(pg, op1, op2);
 }
 
@@ -398,8 +398,8 @@ svint32_t test_svrshl_s32_x(svbool_t pg, svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrshl_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_s64,_x,)(pg, op1, op2);
 }
 
@@ -415,8 +415,8 @@ svint64_t test_svrshl_s64_x(svbool_t pg, svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrshl_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u8,_x,)(pg, op1, op2);
 }
 
@@ -434,8 +434,8 @@ svuint8_t test_svrshl_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svrshl_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u16,_x,)(pg, op1, op2);
 }
 
@@ -453,8 +453,8 @@ svuint16_t test_svrshl_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svrshl_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u32,_x,)(pg, op1, op2);
 }
 
@@ -472,8 +472,8 @@ svuint32_t test_svrshl_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svrshl_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_u64,_x,)(pg, op1, op2);
 }
 
@@ -495,8 +495,8 @@ svuint64_t test_svrshl_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svint8_t test_svrshl_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -520,8 +520,8 @@ svint8_t test_svrshl_n_s8_z(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svrshl_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -545,8 +545,8 @@ svint16_t test_svrshl_n_s16_z(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svrshl_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -570,8 +570,8 @@ svint32_t test_svrshl_n_s32_z(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svrshl_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -593,8 +593,8 @@ svint64_t test_svrshl_n_s64_z(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrshl_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -618,8 +618,8 @@ svuint8_t test_svrshl_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svrshl_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -643,8 +643,8 @@ svuint16_t test_svrshl_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svrshl_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -668,8 +668,8 @@ svuint32_t test_svrshl_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svrshl_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -689,8 +689,8 @@ svuint64_t test_svrshl_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svint8_t test_svrshl_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -712,8 +712,8 @@ svint8_t test_svrshl_n_s8_m(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svrshl_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -735,8 +735,8 @@ svint16_t test_svrshl_n_s16_m(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svrshl_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -758,8 +758,8 @@ svint32_t test_svrshl_n_s32_m(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svrshl_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -779,8 +779,8 @@ svint64_t test_svrshl_n_s64_m(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrshl_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -802,8 +802,8 @@ svuint8_t test_svrshl_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svrshl_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -825,8 +825,8 @@ svuint16_t test_svrshl_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svrshl_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -848,8 +848,8 @@ svuint32_t test_svrshl_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svrshl_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -869,8 +869,8 @@ svuint64_t test_svrshl_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svint8_t test_svrshl_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -892,8 +892,8 @@ svint8_t test_svrshl_n_s8_x(svbool_t pg, svint8_t op1, int8_t op2)
 //
 svint16_t test_svrshl_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -915,8 +915,8 @@ svint16_t test_svrshl_n_s16_x(svbool_t pg, svint16_t op1, int16_t op2)
 //
 svint32_t test_svrshl_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -938,8 +938,8 @@ svint32_t test_svrshl_n_s32_x(svbool_t pg, svint32_t op1, int32_t op2)
 //
 svint64_t test_svrshl_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_s64,_x,)(pg, op1, op2);
 }
 
@@ -959,8 +959,8 @@ svint64_t test_svrshl_n_s64_x(svbool_t pg, svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrshl_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -982,8 +982,8 @@ svuint8_t test_svrshl_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svrshl_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -1005,8 +1005,8 @@ svuint16_t test_svrshl_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svrshl_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -1028,7 +1028,7 @@ svuint32_t test_svrshl_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svrshl_n_u64_x(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshl_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshl_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshl_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshl_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshl,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c
index 42ad5e7c6bc7a..bdd1f661242c0 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshr.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svint8_t test_svrshr_n_s8_z(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s8,_z,)(pg, op1, 1);
 }
 
@@ -50,8 +50,8 @@ svint8_t test_svrshr_n_s8_z(svbool_t pg, svint8_t op1)
 //
 svint8_t test_svrshr_n_s8_z_1(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s8,_z,)(pg, op1, 8);
 }
 
@@ -71,8 +71,8 @@ svint8_t test_svrshr_n_s8_z_1(svbool_t pg, svint8_t op1)
 //
 svint16_t test_svrshr_n_s16_z(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s16,_z,)(pg, op1, 1);
 }
 
@@ -92,8 +92,8 @@ svint16_t test_svrshr_n_s16_z(svbool_t pg, svint16_t op1)
 //
 svint16_t test_svrshr_n_s16_z_1(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s16,_z,)(pg, op1, 16);
 }
 
@@ -113,8 +113,8 @@ svint16_t test_svrshr_n_s16_z_1(svbool_t pg, svint16_t op1)
 //
 svint32_t test_svrshr_n_s32_z(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s32,_z,)(pg, op1, 1);
 }
 
@@ -134,8 +134,8 @@ svint32_t test_svrshr_n_s32_z(svbool_t pg, svint32_t op1)
 //
 svint32_t test_svrshr_n_s32_z_1(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s32,_z,)(pg, op1, 32);
 }
 
@@ -155,8 +155,8 @@ svint32_t test_svrshr_n_s32_z_1(svbool_t pg, svint32_t op1)
 //
 svint64_t test_svrshr_n_s64_z(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s64,_z,)(pg, op1, 1);
 }
 
@@ -176,8 +176,8 @@ svint64_t test_svrshr_n_s64_z(svbool_t pg, svint64_t op1)
 //
 svint64_t test_svrshr_n_s64_z_1(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s64,_z,)(pg, op1, 64);
 }
 
@@ -195,8 +195,8 @@ svint64_t test_svrshr_n_s64_z_1(svbool_t pg, svint64_t op1)
 //
 svuint8_t test_svrshr_n_u8_z(svbool_t pg, svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u8,_z,)(pg, op1, 1);
 }
 
@@ -214,8 +214,8 @@ svuint8_t test_svrshr_n_u8_z(svbool_t pg, svuint8_t op1)
 //
 svuint8_t test_svrshr_n_u8_z_1(svbool_t pg, svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u8,_z,)(pg, op1, 8);
 }
 
@@ -235,8 +235,8 @@ svuint8_t test_svrshr_n_u8_z_1(svbool_t pg, svuint8_t op1)
 //
 svuint16_t test_svrshr_n_u16_z(svbool_t pg, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u16,_z,)(pg, op1, 1);
 }
 
@@ -256,8 +256,8 @@ svuint16_t test_svrshr_n_u16_z(svbool_t pg, svuint16_t op1)
 //
 svuint16_t test_svrshr_n_u16_z_1(svbool_t pg, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u16,_z,)(pg, op1, 16);
 }
 
@@ -277,8 +277,8 @@ svuint16_t test_svrshr_n_u16_z_1(svbool_t pg, svuint16_t op1)
 //
 svuint32_t test_svrshr_n_u32_z(svbool_t pg, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u32,_z,)(pg, op1, 1);
 }
 
@@ -298,8 +298,8 @@ svuint32_t test_svrshr_n_u32_z(svbool_t pg, svuint32_t op1)
 //
 svuint32_t test_svrshr_n_u32_z_1(svbool_t pg, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u32,_z,)(pg, op1, 32);
 }
 
@@ -319,8 +319,8 @@ svuint32_t test_svrshr_n_u32_z_1(svbool_t pg, svuint32_t op1)
 //
 svuint64_t test_svrshr_n_u64_z(svbool_t pg, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u64,_z,)(pg, op1, 1);
 }
 
@@ -340,8 +340,8 @@ svuint64_t test_svrshr_n_u64_z(svbool_t pg, svuint64_t op1)
 //
 svuint64_t test_svrshr_n_u64_z_1(svbool_t pg, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u64,_z,)(pg, op1, 64);
 }
 
@@ -357,8 +357,8 @@ svuint64_t test_svrshr_n_u64_z_1(svbool_t pg, svuint64_t op1)
 //
 svint8_t test_svrshr_n_s8_m(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s8,_m,)(pg, op1, 1);
 }
 
@@ -374,8 +374,8 @@ svint8_t test_svrshr_n_s8_m(svbool_t pg, svint8_t op1)
 //
 svint8_t test_svrshr_n_s8_m_1(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s8,_m,)(pg, op1, 8);
 }
 
@@ -393,8 +393,8 @@ svint8_t test_svrshr_n_s8_m_1(svbool_t pg, svint8_t op1)
 //
 svint16_t test_svrshr_n_s16_m(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s16,_m,)(pg, op1, 1);
 }
 
@@ -412,8 +412,8 @@ svint16_t test_svrshr_n_s16_m(svbool_t pg, svint16_t op1)
 //
 svint16_t test_svrshr_n_s16_m_1(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s16,_m,)(pg, op1, 16);
 }
 
@@ -431,8 +431,8 @@ svint16_t test_svrshr_n_s16_m_1(svbool_t pg, svint16_t op1)
 //
 svint32_t test_svrshr_n_s32_m(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s32,_m,)(pg, op1, 1);
 }
 
@@ -450,8 +450,8 @@ svint32_t test_svrshr_n_s32_m(svbool_t pg, svint32_t op1)
 //
 svint32_t test_svrshr_n_s32_m_1(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s32,_m,)(pg, op1, 32);
 }
 
@@ -469,8 +469,8 @@ svint32_t test_svrshr_n_s32_m_1(svbool_t pg, svint32_t op1)
 //
 svint64_t test_svrshr_n_s64_m(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s64,_m,)(pg, op1, 1);
 }
 
@@ -488,8 +488,8 @@ svint64_t test_svrshr_n_s64_m(svbool_t pg, svint64_t op1)
 //
 svint64_t test_svrshr_n_s64_m_1(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s64,_m,)(pg, op1, 64);
 }
 
@@ -505,8 +505,8 @@ svint64_t test_svrshr_n_s64_m_1(svbool_t pg, svint64_t op1)
 //
 svuint8_t test_svrshr_n_u8_m(svbool_t pg, svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u8,_m,)(pg, op1, 1);
 }
 
@@ -522,8 +522,8 @@ svuint8_t test_svrshr_n_u8_m(svbool_t pg, svuint8_t op1)
 //
 svuint8_t test_svrshr_n_u8_m_1(svbool_t pg, svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u8,_m,)(pg, op1, 8);
 }
 
@@ -541,8 +541,8 @@ svuint8_t test_svrshr_n_u8_m_1(svbool_t pg, svuint8_t op1)
 //
 svuint16_t test_svrshr_n_u16_m(svbool_t pg, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u16,_m,)(pg, op1, 1);
 }
 
@@ -560,8 +560,8 @@ svuint16_t test_svrshr_n_u16_m(svbool_t pg, svuint16_t op1)
 //
 svuint16_t test_svrshr_n_u16_m_1(svbool_t pg, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u16,_m,)(pg, op1, 16);
 }
 
@@ -579,8 +579,8 @@ svuint16_t test_svrshr_n_u16_m_1(svbool_t pg, svuint16_t op1)
 //
 svuint32_t test_svrshr_n_u32_m(svbool_t pg, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u32,_m,)(pg, op1, 1);
 }
 
@@ -598,8 +598,8 @@ svuint32_t test_svrshr_n_u32_m(svbool_t pg, svuint32_t op1)
 //
 svuint32_t test_svrshr_n_u32_m_1(svbool_t pg, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u32,_m,)(pg, op1, 32);
 }
 
@@ -617,8 +617,8 @@ svuint32_t test_svrshr_n_u32_m_1(svbool_t pg, svuint32_t op1)
 //
 svuint64_t test_svrshr_n_u64_m(svbool_t pg, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u64,_m,)(pg, op1, 1);
 }
 
@@ -636,8 +636,8 @@ svuint64_t test_svrshr_n_u64_m(svbool_t pg, svuint64_t op1)
 //
 svuint64_t test_svrshr_n_u64_m_1(svbool_t pg, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u64,_m,)(pg, op1, 64);
 }
 
@@ -653,8 +653,8 @@ svuint64_t test_svrshr_n_u64_m_1(svbool_t pg, svuint64_t op1)
 //
 svint8_t test_svrshr_n_s8_x(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s8,_x,)(pg, op1, 1);
 }
 
@@ -670,8 +670,8 @@ svint8_t test_svrshr_n_s8_x(svbool_t pg, svint8_t op1)
 //
 svint8_t test_svrshr_n_s8_x_1(svbool_t pg, svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s8,_x,)(pg, op1, 8);
 }
 
@@ -689,8 +689,8 @@ svint8_t test_svrshr_n_s8_x_1(svbool_t pg, svint8_t op1)
 //
 svint16_t test_svrshr_n_s16_x(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s16,_x,)(pg, op1, 1);
 }
 
@@ -708,8 +708,8 @@ svint16_t test_svrshr_n_s16_x(svbool_t pg, svint16_t op1)
 //
 svint16_t test_svrshr_n_s16_x_1(svbool_t pg, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s16,_x,)(pg, op1, 16);
 }
 
@@ -727,8 +727,8 @@ svint16_t test_svrshr_n_s16_x_1(svbool_t pg, svint16_t op1)
 //
 svint32_t test_svrshr_n_s32_x(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s32,_x,)(pg, op1, 1);
 }
 
@@ -746,8 +746,8 @@ svint32_t test_svrshr_n_s32_x(svbool_t pg, svint32_t op1)
 //
 svint32_t test_svrshr_n_s32_x_1(svbool_t pg, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s32,_x,)(pg, op1, 32);
 }
 
@@ -765,8 +765,8 @@ svint32_t test_svrshr_n_s32_x_1(svbool_t pg, svint32_t op1)
 //
 svint64_t test_svrshr_n_s64_x(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s64,_x,)(pg, op1, 1);
 }
 
@@ -784,8 +784,8 @@ svint64_t test_svrshr_n_s64_x(svbool_t pg, svint64_t op1)
 //
 svint64_t test_svrshr_n_s64_x_1(svbool_t pg, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_s64,_x,)(pg, op1, 64);
 }
 
@@ -801,8 +801,8 @@ svint64_t test_svrshr_n_s64_x_1(svbool_t pg, svint64_t op1)
 //
 svuint8_t test_svrshr_n_u8_x(svbool_t pg, svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u8,_x,)(pg, op1, 1);
 }
 
@@ -818,8 +818,8 @@ svuint8_t test_svrshr_n_u8_x(svbool_t pg, svuint8_t op1)
 //
 svuint8_t test_svrshr_n_u8_x_1(svbool_t pg, svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u8,_x,)(pg, op1, 8);
 }
 
@@ -837,8 +837,8 @@ svuint8_t test_svrshr_n_u8_x_1(svbool_t pg, svuint8_t op1)
 //
 svuint16_t test_svrshr_n_u16_x(svbool_t pg, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u16,_x,)(pg, op1, 1);
 }
 
@@ -856,8 +856,8 @@ svuint16_t test_svrshr_n_u16_x(svbool_t pg, svuint16_t op1)
 //
 svuint16_t test_svrshr_n_u16_x_1(svbool_t pg, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u16,_x,)(pg, op1, 16);
 }
 
@@ -875,8 +875,8 @@ svuint16_t test_svrshr_n_u16_x_1(svbool_t pg, svuint16_t op1)
 //
 svuint32_t test_svrshr_n_u32_x(svbool_t pg, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u32,_x,)(pg, op1, 1);
 }
 
@@ -894,8 +894,8 @@ svuint32_t test_svrshr_n_u32_x(svbool_t pg, svuint32_t op1)
 //
 svuint32_t test_svrshr_n_u32_x_1(svbool_t pg, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u32,_x,)(pg, op1, 32);
 }
 
@@ -913,8 +913,8 @@ svuint32_t test_svrshr_n_u32_x_1(svbool_t pg, svuint32_t op1)
 //
 svuint64_t test_svrshr_n_u64_x(svbool_t pg, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u64,_x,)(pg, op1, 1);
 }
 
@@ -932,7 +932,7 @@ svuint64_t test_svrshr_n_u64_x(svbool_t pg, svuint64_t op1)
 //
 svuint64_t test_svrshr_n_u64_x_1(svbool_t pg, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshr_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshr_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshr_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshr_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshr,_n_u64,_x,)(pg, op1, 64);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c
index a9d1ab563d3d7..a6cab175a4a14 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svrshrnb_n_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_s16,,)(op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svrshrnb_n_s16(svint16_t op1)
 //
 svint8_t test_svrshrnb_n_s16_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_s16,,)(op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svrshrnb_n_s16_1(svint16_t op1)
 //
 svint16_t test_svrshrnb_n_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_s32,,)(op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svrshrnb_n_s32(svint32_t op1)
 //
 svint16_t test_svrshrnb_n_s32_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_s32,,)(op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svrshrnb_n_s32_1(svint32_t op1)
 //
 svint32_t test_svrshrnb_n_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_s64,,)(op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svrshrnb_n_s64(svint64_t op1)
 //
 svint32_t test_svrshrnb_n_s64_1(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_s64,,)(op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svrshrnb_n_s64_1(svint64_t op1)
 //
 svuint8_t test_svrshrnb_n_u16(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_u16,,)(op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svrshrnb_n_u16(svuint16_t op1)
 //
 svuint8_t test_svrshrnb_n_u16_1(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_u16,,)(op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svrshrnb_n_u16_1(svuint16_t op1)
 //
 svuint16_t test_svrshrnb_n_u32(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_u32,,)(op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svrshrnb_n_u32(svuint32_t op1)
 //
 svuint16_t test_svrshrnb_n_u32_1(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_u32,,)(op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svrshrnb_n_u32_1(svuint32_t op1)
 //
 svuint32_t test_svrshrnb_n_u64(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_u64,,)(op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svrshrnb_n_u64(svuint64_t op1)
 //
 svuint32_t test_svrshrnb_n_u64_1(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnb,_n_u64,,)(op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c
index 41ac7784a4459..48eb2833d782a 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rshrnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svrshrnt_n_s16(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_s16,,)(op, op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svrshrnt_n_s16(svint8_t op, svint16_t op1)
 //
 svint8_t test_svrshrnt_n_s16_1(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_s16,,)(op, op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svrshrnt_n_s16_1(svint8_t op, svint16_t op1)
 //
 svint16_t test_svrshrnt_n_s32(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_s32,,)(op, op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svrshrnt_n_s32(svint16_t op, svint32_t op1)
 //
 svint16_t test_svrshrnt_n_s32_1(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_s32,,)(op, op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svrshrnt_n_s32_1(svint16_t op, svint32_t op1)
 //
 svint32_t test_svrshrnt_n_s64(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_s64,,)(op, op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svrshrnt_n_s64(svint32_t op, svint64_t op1)
 //
 svint32_t test_svrshrnt_n_s64_1(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_s64,,)(op, op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svrshrnt_n_s64_1(svint32_t op, svint64_t op1)
 //
 svuint8_t test_svrshrnt_n_u16(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_u16,,)(op, op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svrshrnt_n_u16(svuint8_t op, svuint16_t op1)
 //
 svuint8_t test_svrshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_u16,,)(op, op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svrshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 //
 svuint16_t test_svrshrnt_n_u32(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_u32,,)(op, op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svrshrnt_n_u32(svuint16_t op, svuint32_t op1)
 //
 svuint16_t test_svrshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_u32,,)(op, op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svrshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 //
 svuint32_t test_svrshrnt_n_u64(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_u64,,)(op, op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svrshrnt_n_u64(svuint32_t op, svuint64_t op1)
 //
 svuint32_t test_svrshrnt_n_u64_1(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrshrnt,_n_u64,,)(op, op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c
index aa70c2612b3e5..de1a622dc1bb4 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsqrte.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,8 +31,8 @@
 //
 svuint32_t test_svrsqrte_u32_z(svbool_t pg, svuint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsqrte_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsqrte_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsqrte_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsqrte_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsqrte,_u32,_z,)(pg, op);
 }
 
@@ -50,8 +50,8 @@ svuint32_t test_svrsqrte_u32_z(svbool_t pg, svuint32_t op)
 //
 svuint32_t test_svrsqrte_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsqrte_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsqrte_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsqrte_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsqrte_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsqrte,_u32,_m,)(inactive, pg, op);
 }
 
@@ -69,7 +69,7 @@ svuint32_t test_svrsqrte_u32_m(svuint32_t inactive, svbool_t pg, svuint32_t op)
 //
 svuint32_t test_svrsqrte_u32_x(svbool_t pg, svuint32_t op)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsqrte_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsqrte_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsqrte_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsqrte_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsqrte,_u32,_x,)(pg, op);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c
index 832f40742bd49..5d30d24a296d4 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsra.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svrsra_n_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s8,,)(op1, op2, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svrsra_n_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svrsra_n_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s8,,)(op1, op2, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svrsra_n_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svrsra_n_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s16,,)(op1, op2, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svrsra_n_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svrsra_n_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s16,,)(op1, op2, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svrsra_n_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svrsra_n_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s32,,)(op1, op2, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svrsra_n_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svrsra_n_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s32,,)(op1, op2, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svrsra_n_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svrsra_n_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s64,,)(op1, op2, 1);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svrsra_n_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svrsra_n_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_s64,,)(op1, op2, 64);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svrsra_n_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrsra_n_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u8,,)(op1, op2, 1);
 }
 
@@ -182,8 +182,8 @@ svuint8_t test_svrsra_n_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svrsra_n_u8_1(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u8,,)(op1, op2, 8);
 }
 
@@ -199,8 +199,8 @@ svuint8_t test_svrsra_n_u8_1(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svrsra_n_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u16,,)(op1, op2, 1);
 }
 
@@ -216,8 +216,8 @@ svuint16_t test_svrsra_n_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svrsra_n_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u16,,)(op1, op2, 16);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svrsra_n_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svrsra_n_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u32,,)(op1, op2, 1);
 }
 
@@ -250,8 +250,8 @@ svuint32_t test_svrsra_n_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svrsra_n_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u32,,)(op1, op2, 32);
 }
 
@@ -267,8 +267,8 @@ svuint32_t test_svrsra_n_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svrsra_n_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u64,,)(op1, op2, 1);
 }
 
@@ -284,7 +284,7 @@ svuint64_t test_svrsra_n_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svrsra_n_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsra_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsra_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsra,_n_u64,,)(op1, op2, 64);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c
index 0ece1b1dbe8b4..fd8c4293c4922 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svrsubhnb_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svrsubhnb_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svrsubhnb_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svrsubhnb_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svrsubhnb_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svrsubhnb_s64(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svrsubhnb_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svrsubhnb_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svrsubhnb_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svrsubhnb_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svrsubhnb_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svrsubhnb_u64(svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svrsubhnb_n_s16(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svrsubhnb_n_s16(svint16_t op1, int16_t op2)
 //
 svint16_t test_svrsubhnb_n_s32(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svrsubhnb_n_s32(svint32_t op1, int32_t op2)
 //
 svint32_t test_svrsubhnb_n_s64(svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svrsubhnb_n_s64(svint64_t op1, int64_t op2)
 //
 svuint8_t test_svrsubhnb_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svrsubhnb_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint16_t test_svrsubhnb_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svrsubhnb_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint32_t test_svrsubhnb_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c
index 5deadd1a87287..5e3a4d7d278b0 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_rsubhnt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svrsubhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svrsubhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svrsubhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svrsubhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svrsubhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svrsubhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svrsubhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svrsubhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svrsubhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svrsubhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svrsubhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svrsubhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svrsubhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svrsubhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 //
 svint16_t test_svrsubhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svrsubhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svrsubhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svrsubhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svrsubhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svrsubhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint16_t test_svrsubhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svrsubhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint32_t test_svrsubhnt_n_u64(svuint32_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svrsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svrsubhnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svrsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svrsubhnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svrsubhnt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c
index ecf5c66a80dc5..cfdf80e9f122d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint32_t test_svsbclb_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclb,_u32,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svuint32_t test_svsbclb_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svsbclb_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclb,_u64,,)(op1, op2, op3);
 }
 
@@ -67,8 +67,8 @@ svuint64_t test_svsbclb_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint32_t test_svsbclb_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclb,_n_u32,,)(op1, op2, op3);
 }
 
@@ -88,7 +88,7 @@ svuint32_t test_svsbclb_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svsbclb_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclb,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c
index 1e720f15d1c50..6c132938cf9f9 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sbclt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svuint32_t test_svsbclt_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclt,_u32,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svuint32_t test_svsbclt_u32(svuint32_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint64_t test_svsbclt_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclt,_u64,,)(op1, op2, op3);
 }
 
@@ -67,8 +67,8 @@ svuint64_t test_svsbclt_u64(svuint64_t op1, svuint64_t op2, svuint64_t op3)
 //
 svuint32_t test_svsbclt_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -88,7 +88,7 @@ svuint32_t test_svsbclt_n_u32(svuint32_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint64_t test_svsbclt_n_u64(svuint64_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsbclt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsbclt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsbclt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsbclt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsbclt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c
index 93a2ab44bd77f..e27f327f17bec 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svshllb_n_s16(svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_s16,,)(op1, 0);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svshllb_n_s16(svint8_t op1)
 //
 svint16_t test_svshllb_n_s16_1(svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_s16,,)(op1, 7);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svshllb_n_s16_1(svint8_t op1)
 //
 svint32_t test_svshllb_n_s32(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_s32,,)(op1, 0);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svshllb_n_s32(svint16_t op1)
 //
 svint32_t test_svshllb_n_s32_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_s32,,)(op1, 15);
 }
 
@@ -97,8 +97,8 @@ svint32_t test_svshllb_n_s32_1(svint16_t op1)
 //
 svint64_t test_svshllb_n_s64(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_s64,,)(op1, 0);
 }
 
@@ -114,8 +114,8 @@ svint64_t test_svshllb_n_s64(svint32_t op1)
 //
 svint64_t test_svshllb_n_s64_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_s64,,)(op1, 31);
 }
 
@@ -131,8 +131,8 @@ svint64_t test_svshllb_n_s64_1(svint32_t op1)
 //
 svuint16_t test_svshllb_n_u16(svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_u16,,)(op1, 0);
 }
 
@@ -148,8 +148,8 @@ svuint16_t test_svshllb_n_u16(svuint8_t op1)
 //
 svuint16_t test_svshllb_n_u16_1(svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_u16,,)(op1, 7);
 }
 
@@ -165,8 +165,8 @@ svuint16_t test_svshllb_n_u16_1(svuint8_t op1)
 //
 svuint32_t test_svshllb_n_u32(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_u32,,)(op1, 0);
 }
 
@@ -182,8 +182,8 @@ svuint32_t test_svshllb_n_u32(svuint16_t op1)
 //
 svuint32_t test_svshllb_n_u32_1(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_u32,,)(op1, 15);
 }
 
@@ -199,8 +199,8 @@ svuint32_t test_svshllb_n_u32_1(svuint16_t op1)
 //
 svuint64_t test_svshllb_n_u64(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_u64,,)(op1, 0);
 }
 
@@ -216,7 +216,7 @@ svuint64_t test_svshllb_n_u64(svuint32_t op1)
 //
 svuint64_t test_svshllb_n_u64_1(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllb,_n_u64,,)(op1, 31);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c
index 31740cb8517c1..15fb36a8f73fd 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shllt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svshllt_n_s16(svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_s16,,)(op1, 0);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svshllt_n_s16(svint8_t op1)
 //
 svint16_t test_svshllt_n_s16_1(svint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_s16,,)(op1, 7);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svshllt_n_s16_1(svint8_t op1)
 //
 svint32_t test_svshllt_n_s32(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_s32,,)(op1, 0);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svshllt_n_s32(svint16_t op1)
 //
 svint32_t test_svshllt_n_s32_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_s32,,)(op1, 15);
 }
 
@@ -97,8 +97,8 @@ svint32_t test_svshllt_n_s32_1(svint16_t op1)
 //
 svint64_t test_svshllt_n_s64(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_s64,,)(op1, 0);
 }
 
@@ -114,8 +114,8 @@ svint64_t test_svshllt_n_s64(svint32_t op1)
 //
 svint64_t test_svshllt_n_s64_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_s64,,)(op1, 31);
 }
 
@@ -131,8 +131,8 @@ svint64_t test_svshllt_n_s64_1(svint32_t op1)
 //
 svuint16_t test_svshllt_n_u16(svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_u16,,)(op1, 0);
 }
 
@@ -148,8 +148,8 @@ svuint16_t test_svshllt_n_u16(svuint8_t op1)
 //
 svuint16_t test_svshllt_n_u16_1(svuint8_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_u16,,)(op1, 7);
 }
 
@@ -165,8 +165,8 @@ svuint16_t test_svshllt_n_u16_1(svuint8_t op1)
 //
 svuint32_t test_svshllt_n_u32(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_u32,,)(op1, 0);
 }
 
@@ -182,8 +182,8 @@ svuint32_t test_svshllt_n_u32(svuint16_t op1)
 //
 svuint32_t test_svshllt_n_u32_1(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_u32,,)(op1, 15);
 }
 
@@ -199,8 +199,8 @@ svuint32_t test_svshllt_n_u32_1(svuint16_t op1)
 //
 svuint64_t test_svshllt_n_u64(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_u64,,)(op1, 0);
 }
 
@@ -216,7 +216,7 @@ svuint64_t test_svshllt_n_u64(svuint32_t op1)
 //
 svuint64_t test_svshllt_n_u64_1(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshllt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshllt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshllt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshllt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshllt,_n_u64,,)(op1, 31);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c
index 3157d049b6f8a..d47d209673f1a 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnb.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svshrnb_n_s16(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_s16,,)(op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svshrnb_n_s16(svint16_t op1)
 //
 svint8_t test_svshrnb_n_s16_1(svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_s16,,)(op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svshrnb_n_s16_1(svint16_t op1)
 //
 svint16_t test_svshrnb_n_s32(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_s32,,)(op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svshrnb_n_s32(svint32_t op1)
 //
 svint16_t test_svshrnb_n_s32_1(svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_s32,,)(op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svshrnb_n_s32_1(svint32_t op1)
 //
 svint32_t test_svshrnb_n_s64(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_s64,,)(op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svshrnb_n_s64(svint64_t op1)
 //
 svint32_t test_svshrnb_n_s64_1(svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_s64,,)(op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svshrnb_n_s64_1(svint64_t op1)
 //
 svuint8_t test_svshrnb_n_u16(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_u16,,)(op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svshrnb_n_u16(svuint16_t op1)
 //
 svuint8_t test_svshrnb_n_u16_1(svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_u16,,)(op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svshrnb_n_u16_1(svuint16_t op1)
 //
 svuint16_t test_svshrnb_n_u32(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_u32,,)(op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svshrnb_n_u32(svuint32_t op1)
 //
 svuint16_t test_svshrnb_n_u32_1(svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_u32,,)(op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svshrnb_n_u32_1(svuint32_t op1)
 //
 svuint32_t test_svshrnb_n_u64(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_u64,,)(op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svshrnb_n_u64(svuint64_t op1)
 //
 svuint32_t test_svshrnb_n_u64_1(svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnb,_n_u64,,)(op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c
index b9ac13a9c4fe1..341a82cf12dfd 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_shrnt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svshrnt_n_s16(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_s16,,)(op, op1, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svshrnt_n_s16(svint8_t op, svint16_t op1)
 //
 svint8_t test_svshrnt_n_s16_1(svint8_t op, svint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_s16,,)(op, op1, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svshrnt_n_s16_1(svint8_t op, svint16_t op1)
 //
 svint16_t test_svshrnt_n_s32(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_s32,,)(op, op1, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svshrnt_n_s32(svint16_t op, svint32_t op1)
 //
 svint16_t test_svshrnt_n_s32_1(svint16_t op, svint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_s32,,)(op, op1, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svshrnt_n_s32_1(svint16_t op, svint32_t op1)
 //
 svint32_t test_svshrnt_n_s64(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_s64,,)(op, op1, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svshrnt_n_s64(svint32_t op, svint64_t op1)
 //
 svint32_t test_svshrnt_n_s64_1(svint32_t op, svint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_s64,,)(op, op1, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svshrnt_n_s64_1(svint32_t op, svint64_t op1)
 //
 svuint8_t test_svshrnt_n_u16(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_u16,,)(op, op1, 1);
 }
 
@@ -148,8 +148,8 @@ svuint8_t test_svshrnt_n_u16(svuint8_t op, svuint16_t op1)
 //
 svuint8_t test_svshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_u16,,)(op, op1, 8);
 }
 
@@ -165,8 +165,8 @@ svuint8_t test_svshrnt_n_u16_1(svuint8_t op, svuint16_t op1)
 //
 svuint16_t test_svshrnt_n_u32(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_u32,,)(op, op1, 1);
 }
 
@@ -182,8 +182,8 @@ svuint16_t test_svshrnt_n_u32(svuint16_t op, svuint32_t op1)
 //
 svuint16_t test_svshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_u32,,)(op, op1, 16);
 }
 
@@ -199,8 +199,8 @@ svuint16_t test_svshrnt_n_u32_1(svuint16_t op, svuint32_t op1)
 //
 svuint32_t test_svshrnt_n_u64(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_u64,,)(op, op1, 1);
 }
 
@@ -216,7 +216,7 @@ svuint32_t test_svshrnt_n_u64(svuint32_t op, svuint64_t op1)
 //
 svuint32_t test_svshrnt_n_u64_1(svuint32_t op, svuint64_t op1)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svshrnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svshrnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svshrnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svshrnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svshrnt,_n_u64,,)(op, op1, 32);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c
index f3edde43599a5..925f3dcc8ea8c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sli.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svsli_n_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s8,,)(op1, op2, 0);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svsli_n_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svsli_n_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s8,,)(op1, op2, 7);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svsli_n_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svsli_n_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s16,,)(op1, op2, 0);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svsli_n_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svsli_n_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s16,,)(op1, op2, 15);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svsli_n_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svsli_n_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s32,,)(op1, op2, 0);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svsli_n_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svsli_n_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s32,,)(op1, op2, 31);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svsli_n_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svsli_n_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s64,,)(op1, op2, 0);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svsli_n_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svsli_n_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_s64,,)(op1, op2, 63);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svsli_n_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsli_n_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u8,,)(op1, op2, 0);
 }
 
@@ -182,8 +182,8 @@ svuint8_t test_svsli_n_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svsli_n_u8_1(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u8,,)(op1, op2, 7);
 }
 
@@ -199,8 +199,8 @@ svuint8_t test_svsli_n_u8_1(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svsli_n_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u16,,)(op1, op2, 0);
 }
 
@@ -216,8 +216,8 @@ svuint16_t test_svsli_n_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svsli_n_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u16,,)(op1, op2, 15);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svsli_n_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svsli_n_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u32,,)(op1, op2, 0);
 }
 
@@ -250,8 +250,8 @@ svuint32_t test_svsli_n_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svsli_n_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u32,,)(op1, op2, 31);
 }
 
@@ -267,8 +267,8 @@ svuint32_t test_svsli_n_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svsli_n_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u64,,)(op1, op2, 0);
 }
 
@@ -284,7 +284,7 @@ svuint64_t test_svsli_n_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svsli_n_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsli'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsli_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsli'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsli_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsli,_n_u64,,)(op1, op2, 63);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c
index fb9c475fae1a6..2230b3282fa7c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4e.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-sm4 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-sm4 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-sm4 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svuint32_t test_svsm4e_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsm4e'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsm4e_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsm4e'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsm4e_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsm4e,_u32,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c
index 1ac9f3c0bc176..9a74e75c98b63 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sm4ekey.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2-sm4 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-sm4 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2-sm4 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,7 +29,7 @@
 //
 svuint32_t test_svsm4ekey_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsm4ekey'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsm4ekey_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsm4ekey'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsm4ekey_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsm4ekey,_u32,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c
index 01298ab1d0caa..fc18a8def6729 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sqadd.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 #include <arm_sve.h>
 
 #ifdef SVE_OVERLOADED_FORMS
@@ -28,8 +28,8 @@
 //
 svuint8_t test_svsqadd_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u8,_m,)(pg, op1, op2);
 }
 
@@ -47,8 +47,8 @@ svuint8_t test_svsqadd_u8_m(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svsqadd_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svuint16_t test_svsqadd_u16_m(svbool_t pg, svuint16_t op1, svint16_t op2)
 svuint32_t test_svsqadd_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
   // CHECKA-LABEL: test_svsqadd_u32_m
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svuint32_t test_svsqadd_u32_m(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svsqadd_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u64,_m,)(pg, op1, op2);
 }
 
@@ -107,8 +107,8 @@ svuint64_t test_svsqadd_u64_m(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsqadd_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u8,_m,)(pg, op1, op2);
 }
 
@@ -130,8 +130,8 @@ svuint8_t test_svsqadd_n_u8_m(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svsqadd_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u16,_m,)(pg, op1, op2);
 }
 
@@ -153,8 +153,8 @@ svuint16_t test_svsqadd_n_u16_m(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svsqadd_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u32,_m,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svuint32_t test_svsqadd_n_u32_m(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svsqadd_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u64,_m,)(pg, op1, op2);
 }
 
@@ -195,8 +195,8 @@ svuint64_t test_svsqadd_n_u64_m(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svuint8_t test_svsqadd_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u8,_z,)(pg, op1, op2);
 }
 
@@ -216,8 +216,8 @@ svuint8_t test_svsqadd_u8_z(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svsqadd_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u16,_z,)(pg, op1, op2);
 }
 
@@ -237,8 +237,8 @@ svuint16_t test_svsqadd_u16_z(svbool_t pg, svuint16_t op1, svint16_t op2)
 //
 svuint32_t test_svsqadd_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u32,_z,)(pg, op1, op2);
 }
 
@@ -258,8 +258,8 @@ svuint32_t test_svsqadd_u32_z(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svsqadd_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u64,_z,)(pg, op1, op2);
 }
 
@@ -281,8 +281,8 @@ svuint64_t test_svsqadd_u64_z(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsqadd_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u8,_z,)(pg, op1, op2);
 }
 
@@ -306,8 +306,8 @@ svuint8_t test_svsqadd_n_u8_z(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svsqadd_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u16,_z,)(pg, op1, op2);
 }
 
@@ -331,8 +331,8 @@ svuint16_t test_svsqadd_n_u16_z(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svsqadd_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u32,_z,)(pg, op1, op2);
 }
 
@@ -356,8 +356,8 @@ svuint32_t test_svsqadd_n_u32_z(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svsqadd_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u64,_z,)(pg, op1, op2);
 }
 
@@ -373,8 +373,8 @@ svuint64_t test_svsqadd_n_u64_z(svbool_t pg, svuint64_t op1, int64_t op2)
 //
 svuint8_t test_svsqadd_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u8,_x,)(pg, op1, op2);
 }
 
@@ -392,8 +392,8 @@ svuint8_t test_svsqadd_u8_x(svbool_t pg, svuint8_t op1, svint8_t op2)
 //
 svuint16_t test_svsqadd_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u16,_x,)(pg, op1, op2);
 }
 
@@ -412,8 +412,8 @@ svuint16_t test_svsqadd_u16_x(svbool_t pg, svuint16_t op1, svint16_t op2)
 svuint32_t test_svsqadd_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 {
   // CHECKA-LABEL: test_svsqadd_u32_x
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u32,_x,)(pg, op1, op2);
 }
 
@@ -431,8 +431,8 @@ svuint32_t test_svsqadd_u32_x(svbool_t pg, svuint32_t op1, svint32_t op2)
 //
 svuint64_t test_svsqadd_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_u64,_x,)(pg, op1, op2);
 }
 
@@ -452,8 +452,8 @@ svuint64_t test_svsqadd_u64_x(svbool_t pg, svuint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsqadd_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u8,_x,)(pg, op1, op2);
 }
 
@@ -475,8 +475,8 @@ svuint8_t test_svsqadd_n_u8_x(svbool_t pg, svuint8_t op1, int8_t op2)
 //
 svuint16_t test_svsqadd_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u16,_x,)(pg, op1, op2);
 }
 
@@ -498,8 +498,8 @@ svuint16_t test_svsqadd_n_u16_x(svbool_t pg, svuint16_t op1, int16_t op2)
 //
 svuint32_t test_svsqadd_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u32,_x,)(pg, op1, op2);
 }
 
@@ -521,7 +521,7 @@ svuint32_t test_svsqadd_n_u32_x(svbool_t pg, svuint32_t op1, int32_t op2)
 //
 svuint64_t test_svsqadd_n_u64_x(svbool_t pg, svuint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsqadd_n_u64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svsqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsqadd_n_u64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsqadd,_n_u64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c
index b49e5f03c5cb3..dbe27d8a64852 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sra.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svsra_n_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s8,,)(op1, op2, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svsra_n_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svsra_n_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s8,,)(op1, op2, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svsra_n_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svsra_n_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s16,,)(op1, op2, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svsra_n_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svsra_n_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s16,,)(op1, op2, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svsra_n_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svsra_n_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s32,,)(op1, op2, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svsra_n_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svsra_n_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s32,,)(op1, op2, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svsra_n_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svsra_n_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s64,,)(op1, op2, 1);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svsra_n_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svsra_n_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_s64,,)(op1, op2, 64);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svsra_n_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsra_n_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u8,,)(op1, op2, 1);
 }
 
@@ -182,8 +182,8 @@ svuint8_t test_svsra_n_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svsra_n_u8_1(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u8,,)(op1, op2, 8);
 }
 
@@ -199,8 +199,8 @@ svuint8_t test_svsra_n_u8_1(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svsra_n_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u16,,)(op1, op2, 1);
 }
 
@@ -216,8 +216,8 @@ svuint16_t test_svsra_n_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svsra_n_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u16,,)(op1, op2, 16);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svsra_n_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svsra_n_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u32,,)(op1, op2, 1);
 }
 
@@ -250,8 +250,8 @@ svuint32_t test_svsra_n_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svsra_n_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u32,,)(op1, op2, 32);
 }
 
@@ -267,8 +267,8 @@ svuint32_t test_svsra_n_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svsra_n_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u64,,)(op1, op2, 1);
 }
 
@@ -284,7 +284,7 @@ svuint64_t test_svsra_n_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svsra_n_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsra'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsra_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsra'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsra_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsra,_n_u64,,)(op1, op2, 64);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c
index 0ce0e5e278091..0f6f0ba48886d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sri.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svsri_n_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s8,,)(op1, op2, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svsri_n_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svsri_n_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s8,,)(op1, op2, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svsri_n_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svsri_n_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s16,,)(op1, op2, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svsri_n_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svsri_n_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s16,,)(op1, op2, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svsri_n_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svsri_n_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s32,,)(op1, op2, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svsri_n_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svsri_n_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s32,,)(op1, op2, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svsri_n_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svsri_n_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s64,,)(op1, op2, 1);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svsri_n_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svsri_n_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_s64,,)(op1, op2, 64);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svsri_n_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsri_n_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u8,,)(op1, op2, 1);
 }
 
@@ -182,8 +182,8 @@ svuint8_t test_svsri_n_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svsri_n_u8_1(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u8,,)(op1, op2, 8);
 }
 
@@ -199,8 +199,8 @@ svuint8_t test_svsri_n_u8_1(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svsri_n_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u16,,)(op1, op2, 1);
 }
 
@@ -216,8 +216,8 @@ svuint16_t test_svsri_n_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svsri_n_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u16,,)(op1, op2, 16);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svsri_n_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svsri_n_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u32,,)(op1, op2, 1);
 }
 
@@ -250,8 +250,8 @@ svuint32_t test_svsri_n_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svsri_n_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u32,,)(op1, op2, 32);
 }
 
@@ -267,8 +267,8 @@ svuint32_t test_svsri_n_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svsri_n_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u64,,)(op1, op2, 1);
 }
 
@@ -284,7 +284,7 @@ svuint64_t test_svsri_n_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svsri_n_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsri'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsri_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsri'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsri_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsri,_n_u64,,)(op1, op2, 64);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c
index 6ae21408bdadc..6fb1e16427a15 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -30,8 +30,8 @@
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_s32(svbool_t pg, svuint32_t bases, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, , _s32)(pg, bases, data);
 }
 
@@ -48,8 +48,8 @@ void test_svstnt1_scatter_u32base_s32(svbool_t pg, svuint32_t bases, svint32_t d
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, , _s64)(pg, bases, data);
 }
 
@@ -66,8 +66,8 @@ void test_svstnt1_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t d
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_u32(svbool_t pg, svuint32_t bases, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, , _u32)(pg, bases, data);
 }
 
@@ -84,8 +84,8 @@ void test_svstnt1_scatter_u32base_u32(svbool_t pg, svuint32_t bases, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, , _u64)(pg, bases, data);
 }
 
@@ -102,8 +102,8 @@ void test_svstnt1_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_f32(svbool_t pg, svuint32_t bases, svfloat32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, , _f32)(pg, bases, data);
 }
 
@@ -120,8 +120,8 @@ void test_svstnt1_scatter_u32base_f32(svbool_t pg, svuint32_t bases, svfloat32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_f64(svbool_t pg, svuint64_t bases, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, , _f64)(pg, bases, data);
 }
 
@@ -138,8 +138,8 @@ void test_svstnt1_scatter_u64base_f64(svbool_t pg, svuint64_t bases, svfloat64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_s64offset_s64(svbool_t pg, int64_t *base, svint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, s64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -156,8 +156,8 @@ void test_svstnt1_scatter_s64offset_s64(svbool_t pg, int64_t *base, svint64_t of
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_s64offset_u64(svbool_t pg, uint64_t *base, svint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, s64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -174,8 +174,8 @@ void test_svstnt1_scatter_s64offset_u64(svbool_t pg, uint64_t *base, svint64_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_s64offset_f64(svbool_t pg, float64_t *base, svint64_t offsets, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_s64offset_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_s64offset_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, s64, offset, _f64)(pg, base, offsets, data);
 }
 
@@ -192,8 +192,8 @@ void test_svstnt1_scatter_s64offset_f64(svbool_t pg, float64_t *base, svint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32offset_s32(svbool_t pg, int32_t *base, svuint32_t offsets, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u32, offset, _s32)(pg, base, offsets, data);
 }
 
@@ -210,8 +210,8 @@ void test_svstnt1_scatter_u32offset_s32(svbool_t pg, int32_t *base, svuint32_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64offset_s64(svbool_t pg, int64_t *base, svuint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -228,8 +228,8 @@ void test_svstnt1_scatter_u64offset_s64(svbool_t pg, int64_t *base, svuint64_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32offset_u32(svbool_t pg, uint32_t *base, svuint32_t offsets, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u32, offset, _u32)(pg, base, offsets, data);
 }
 
@@ -246,8 +246,8 @@ void test_svstnt1_scatter_u32offset_u32(svbool_t pg, uint32_t *base, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64offset_u64(svbool_t pg, uint64_t *base, svuint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -264,8 +264,8 @@ void test_svstnt1_scatter_u64offset_u64(svbool_t pg, uint64_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32offset_f32(svbool_t pg, float32_t *base, svuint32_t offsets, svfloat32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32offset_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32offset_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u32, offset, _f32)(pg, base, offsets, data);
 }
 
@@ -282,8 +282,8 @@ void test_svstnt1_scatter_u32offset_f32(svbool_t pg, float32_t *base, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64offset_f64(svbool_t pg, float64_t *base, svuint64_t offsets, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64offset_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64offset_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u64, offset, _f64)(pg, base, offsets, data);
 }
 
@@ -300,8 +300,8 @@ void test_svstnt1_scatter_u64offset_f64(svbool_t pg, float64_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, _offset, _s32)(pg, bases, offset, data);
 }
 
@@ -318,8 +318,8 @@ void test_svstnt1_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, _offset, _s64)(pg, bases, offset, data);
 }
 
@@ -336,8 +336,8 @@ void test_svstnt1_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, _offset, _u32)(pg, bases, offset, data);
 }
 
@@ -354,8 +354,8 @@ void test_svstnt1_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, _offset, _u64)(pg, bases, offset, data);
 }
 
@@ -372,8 +372,8 @@ void test_svstnt1_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_offset_f32(svbool_t pg, svuint32_t bases, int64_t offset, svfloat32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_offset_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_offset_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, _offset, _f32)(pg, bases, offset, data);
 }
 
@@ -390,8 +390,8 @@ void test_svstnt1_scatter_u32base_offset_f32(svbool_t pg, svuint32_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_offset_f64(svbool_t pg, svuint64_t bases, int64_t offset, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_offset_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_offset_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, _offset, _f64)(pg, bases, offset, data);
 }
 
@@ -408,8 +408,8 @@ void test_svstnt1_scatter_u64base_offset_f64(svbool_t pg, svuint64_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_s64index_s64(svbool_t pg, int64_t *base, svint64_t indices, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, s64, index, _s64)(pg, base, indices, data);
 }
 
@@ -426,8 +426,8 @@ void test_svstnt1_scatter_s64index_s64(svbool_t pg, int64_t *base, svint64_t ind
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_s64index_u64(svbool_t pg, uint64_t *base, svint64_t indices, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, s64, index, _u64)(pg, base, indices, data);
 }
 
@@ -444,8 +444,8 @@ void test_svstnt1_scatter_s64index_u64(svbool_t pg, uint64_t *base, svint64_t in
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_s64index_f64(svbool_t pg, float64_t *base, svint64_t indices, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_s64index_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_s64index_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, s64, index, _f64)(pg, base, indices, data);
 }
 
@@ -462,8 +462,8 @@ void test_svstnt1_scatter_s64index_f64(svbool_t pg, float64_t *base, svint64_t i
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64index_s64(svbool_t pg, int64_t *base, svuint64_t indices, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u64, index, _s64)(pg, base, indices, data);
 }
 
@@ -480,8 +480,8 @@ void test_svstnt1_scatter_u64index_s64(svbool_t pg, int64_t *base, svuint64_t in
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64index_u64(svbool_t pg, uint64_t *base, svuint64_t indices, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u64, index, _u64)(pg, base, indices, data);
 }
 
@@ -498,8 +498,8 @@ void test_svstnt1_scatter_u64index_u64(svbool_t pg, uint64_t *base, svuint64_t i
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64index_f64(svbool_t pg, float64_t *base, svuint64_t indices, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64index_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64index_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter_, u64, index, _f64)(pg, base, indices, data);
 }
 
@@ -518,8 +518,8 @@ void test_svstnt1_scatter_u64index_f64(svbool_t pg, float64_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_index_s32(svbool_t pg, svuint32_t bases, int64_t index, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_index_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_index_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, _index, _s32)(pg, bases, index, data);
 }
 
@@ -538,8 +538,8 @@ void test_svstnt1_scatter_u32base_index_s32(svbool_t pg, svuint32_t bases, int64
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, _index, _s64)(pg, bases, index, data);
 }
 
@@ -558,8 +558,8 @@ void test_svstnt1_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases, int64
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_index_u32(svbool_t pg, svuint32_t bases, int64_t index, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_index_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_index_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, _index, _u32)(pg, bases, index, data);
 }
 
@@ -578,8 +578,8 @@ void test_svstnt1_scatter_u32base_index_u32(svbool_t pg, svuint32_t bases, int64
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, _index, _u64)(pg, bases, index, data);
 }
 
@@ -598,8 +598,8 @@ void test_svstnt1_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases, int64
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u32base_index_f32(svbool_t pg, svuint32_t bases, int64_t index, svfloat32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u32base_index_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u32base_index_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u32base, _index, _f32)(pg, bases, index, data);
 }
 
@@ -618,7 +618,7 @@ void test_svstnt1_scatter_u32base_index_f32(svbool_t pg, svuint32_t bases, int64
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1_scatter_u64base_index_f64(svbool_t pg, svuint64_t bases, int64_t index, svfloat64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1_scatter_u64base_index_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1_scatter_u64base_index_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1_scatter, _u64base, _index, _f64)(pg, bases, index, data);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c
index e318c169ba78a..33969831d4dde 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1b.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u32base_s32(svbool_t pg, svuint32_t bases, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u32base, , _s32)(pg, bases, data);
 }
 
@@ -52,8 +52,8 @@ void test_svstnt1b_scatter_u32base_s32(svbool_t pg, svuint32_t bases, svint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u64base, , _s64)(pg, bases, data);
 }
 
@@ -72,8 +72,8 @@ void test_svstnt1b_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u32base_u32(svbool_t pg, svuint32_t bases, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u32base, , _u32)(pg, bases, data);
 }
 
@@ -92,8 +92,8 @@ void test_svstnt1b_scatter_u32base_u32(svbool_t pg, svuint32_t bases, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u64base, , _u64)(pg, bases, data);
 }
 
@@ -112,8 +112,8 @@ void test_svstnt1b_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_s64offset_s64(svbool_t pg, int8_t *base, svint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter_, s64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -132,8 +132,8 @@ void test_svstnt1b_scatter_s64offset_s64(svbool_t pg, int8_t *base, svint64_t of
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_s64offset_u64(svbool_t pg, uint8_t *base, svint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter_, s64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -152,8 +152,8 @@ void test_svstnt1b_scatter_s64offset_u64(svbool_t pg, uint8_t *base, svint64_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u32offset_s32(svbool_t pg, int8_t *base, svuint32_t offsets, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter_, u32, offset, _s32)(pg, base, offsets, data);
 }
 
@@ -172,8 +172,8 @@ void test_svstnt1b_scatter_u32offset_s32(svbool_t pg, int8_t *base, svuint32_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u64offset_s64(svbool_t pg, int8_t *base, svuint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter_, u64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -192,8 +192,8 @@ void test_svstnt1b_scatter_u64offset_s64(svbool_t pg, int8_t *base, svuint64_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u32offset_u32(svbool_t pg, uint8_t *base, svuint32_t offsets, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter_, u32, offset, _u32)(pg, base, offsets, data);
 }
 
@@ -212,8 +212,8 @@ void test_svstnt1b_scatter_u32offset_u32(svbool_t pg, uint8_t *base, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u64offset_u64(svbool_t pg, uint8_t *base, svuint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter_, u64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -232,8 +232,8 @@ void test_svstnt1b_scatter_u64offset_u64(svbool_t pg, uint8_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u32base, _offset, _s32)(pg, bases, offset, data);
 }
 
@@ -252,8 +252,8 @@ void test_svstnt1b_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u64base, _offset, _s64)(pg, bases, offset, data);
 }
 
@@ -272,8 +272,8 @@ void test_svstnt1b_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u32base, _offset, _u32)(pg, bases, offset, data);
 }
 
@@ -292,7 +292,7 @@ void test_svstnt1b_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1b_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1b_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1b_scatter_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1b_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1b_scatter_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1b_scatter, _u64base, _offset, _u64)(pg, bases, offset, data);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c
index e886dccef27b9..0ddc56be53c82 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1h.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32base_s32(svbool_t pg, svuint32_t bases, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32base_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32base_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u32base, , _s32)(pg, bases, data);
 }
 
@@ -52,8 +52,8 @@ void test_svstnt1h_scatter_u32base_s32(svbool_t pg, svuint32_t bases, svint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u64base, , _s64)(pg, bases, data);
 }
 
@@ -72,8 +72,8 @@ void test_svstnt1h_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32base_u32(svbool_t pg, svuint32_t bases, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32base_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32base_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u32base, , _u32)(pg, bases, data);
 }
 
@@ -92,8 +92,8 @@ void test_svstnt1h_scatter_u32base_u32(svbool_t pg, svuint32_t bases, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u64base, , _u64)(pg, bases, data);
 }
 
@@ -112,8 +112,8 @@ void test_svstnt1h_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_s64offset_s64(svbool_t pg, int16_t *base, svint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, s64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -132,8 +132,8 @@ void test_svstnt1h_scatter_s64offset_s64(svbool_t pg, int16_t *base, svint64_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_s64offset_u64(svbool_t pg, uint16_t *base, svint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, s64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -152,8 +152,8 @@ void test_svstnt1h_scatter_s64offset_u64(svbool_t pg, uint16_t *base, svint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32offset_s32(svbool_t pg, int16_t *base, svuint32_t offsets, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, u32, offset, _s32)(pg, base, offsets, data);
 }
 
@@ -172,8 +172,8 @@ void test_svstnt1h_scatter_u32offset_s32(svbool_t pg, int16_t *base, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64offset_s64(svbool_t pg, int16_t *base, svuint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, u64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -192,8 +192,8 @@ void test_svstnt1h_scatter_u64offset_s64(svbool_t pg, int16_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32offset_u32(svbool_t pg, uint16_t *base, svuint32_t offsets, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, u32, offset, _u32)(pg, base, offsets, data);
 }
 
@@ -212,8 +212,8 @@ void test_svstnt1h_scatter_u32offset_u32(svbool_t pg, uint16_t *base, svuint32_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64offset_u64(svbool_t pg, uint16_t *base, svuint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, u64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -232,8 +232,8 @@ void test_svstnt1h_scatter_u64offset_u64(svbool_t pg, uint16_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases, int64_t offset, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32base_offset_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32base_offset_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u32base, _offset, _s32)(pg, bases, offset, data);
 }
 
@@ -252,8 +252,8 @@ void test_svstnt1h_scatter_u32base_offset_s32(svbool_t pg, svuint32_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u64base, _offset, _s64)(pg, bases, offset, data);
 }
 
@@ -272,8 +272,8 @@ void test_svstnt1h_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases, int64_t offset, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32base_offset_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32base_offset_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u32base, _offset, _u32)(pg, bases, offset, data);
 }
 
@@ -292,8 +292,8 @@ void test_svstnt1h_scatter_u32base_offset_u32(svbool_t pg, svuint32_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u64base, _offset, _u64)(pg, bases, offset, data);
 }
 
@@ -312,8 +312,8 @@ void test_svstnt1h_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_s64index_s64(svbool_t pg, int16_t *base, svint64_t indices, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, s64, index, _s64)(pg, base, indices, data);
 }
 
@@ -332,8 +332,8 @@ void test_svstnt1h_scatter_s64index_s64(svbool_t pg, int16_t *base, svint64_t in
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_s64index_u64(svbool_t pg, uint16_t *base, svint64_t indices, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, s64, index, _u64)(pg, base, indices, data);
 }
 
@@ -352,8 +352,8 @@ void test_svstnt1h_scatter_s64index_u64(svbool_t pg, uint16_t *base, svint64_t i
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64index_s64(svbool_t pg, int16_t *base, svuint64_t indices, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, u64, index, _s64)(pg, base, indices, data);
 }
 
@@ -372,8 +372,8 @@ void test_svstnt1h_scatter_u64index_s64(svbool_t pg, int16_t *base, svuint64_t i
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64index_u64(svbool_t pg, uint16_t *base, svuint64_t indices, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter_, u64, index, _u64)(pg, base, indices, data);
 }
 
@@ -394,8 +394,8 @@ void test_svstnt1h_scatter_u64index_u64(svbool_t pg, uint16_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32base_index_s32(svbool_t pg, svuint32_t bases, int64_t index, svint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32base_index_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32base_index_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u32base, _index, _s32)(pg, bases, index, data);
 }
 
@@ -416,8 +416,8 @@ void test_svstnt1h_scatter_u32base_index_s32(svbool_t pg, svuint32_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u64base, _index, _s64)(pg, bases, index, data);
 }
 
@@ -438,8 +438,8 @@ void test_svstnt1h_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u32base_index_u32(svbool_t pg, svuint32_t bases, int64_t index, svuint32_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u32base_index_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u32base_index_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u32base, _index, _u32)(pg, bases, index, data);
 }
 
@@ -460,7 +460,7 @@ void test_svstnt1h_scatter_u32base_index_u32(svbool_t pg, svuint32_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1h_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1h_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1h_scatter_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1h_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1h_scatter_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1h_scatter, _u64base, _index, _u64)(pg, bases, index, data);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c
index 7b8c91636c389..4586654843c91 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_stnt1w.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -32,8 +32,8 @@
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64base_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64base_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter, _u64base, , _s64)(pg, bases, data);
 }
 
@@ -52,8 +52,8 @@ void test_svstnt1w_scatter_u64base_s64(svbool_t pg, svuint64_t bases, svint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64base_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64base_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter, _u64base, , _u64)(pg, bases, data);
 }
 
@@ -72,8 +72,8 @@ void test_svstnt1w_scatter_u64base_u64(svbool_t pg, svuint64_t bases, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_s64offset_s64(svbool_t pg, int32_t *base, svint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_s64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_s64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, s64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -92,8 +92,8 @@ void test_svstnt1w_scatter_s64offset_s64(svbool_t pg, int32_t *base, svint64_t o
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_s64offset_u64(svbool_t pg, uint32_t *base, svint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_s64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_s64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, s64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -112,8 +112,8 @@ void test_svstnt1w_scatter_s64offset_u64(svbool_t pg, uint32_t *base, svint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64offset_s64(svbool_t pg, int32_t *base, svuint64_t offsets, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, u64, offset, _s64)(pg, base, offsets, data);
 }
 
@@ -132,8 +132,8 @@ void test_svstnt1w_scatter_u64offset_s64(svbool_t pg, int32_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64offset_u64(svbool_t pg, uint32_t *base, svuint64_t offsets, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, u64, offset, _u64)(pg, base, offsets, data);
 }
 
@@ -152,8 +152,8 @@ void test_svstnt1w_scatter_u64offset_u64(svbool_t pg, uint32_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int64_t offset, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64base_offset_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64base_offset_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter, _u64base, _offset, _s64)(pg, bases, offset, data);
 }
 
@@ -172,8 +172,8 @@ void test_svstnt1w_scatter_u64base_offset_s64(svbool_t pg, svuint64_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int64_t offset, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_offset'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64base_offset_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_offset'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64base_offset_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter, _u64base, _offset, _u64)(pg, bases, offset, data);
 }
 
@@ -192,8 +192,8 @@ void test_svstnt1w_scatter_u64base_offset_u64(svbool_t pg, svuint64_t bases, int
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_s64index_s64(svbool_t pg, int32_t *base, svint64_t indices, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_s64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_s64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, s64, index, _s64)(pg, base, indices, data);
 }
 
@@ -212,8 +212,8 @@ void test_svstnt1w_scatter_s64index_s64(svbool_t pg, int32_t *base, svint64_t in
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_s64index_u64(svbool_t pg, uint32_t *base, svint64_t indices, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_s64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_s64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, s64, index, _u64)(pg, base, indices, data);
 }
 
@@ -232,8 +232,8 @@ void test_svstnt1w_scatter_s64index_u64(svbool_t pg, uint32_t *base, svint64_t i
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64index_s64(svbool_t pg, int32_t *base, svuint64_t indices, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, u64, index, _s64)(pg, base, indices, data);
 }
 
@@ -252,8 +252,8 @@ void test_svstnt1w_scatter_u64index_s64(svbool_t pg, int32_t *base, svuint64_t i
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64index_u64(svbool_t pg, uint32_t *base, svuint64_t indices, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter_, u64, index, _u64)(pg, base, indices, data);
 }
 
@@ -274,8 +274,8 @@ void test_svstnt1w_scatter_u64index_u64(svbool_t pg, uint32_t *base, svuint64_t
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases, int64_t index, svint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64base_index_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64base_index_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter, _u64base, _index, _s64)(pg, bases, index, data);
 }
 
@@ -296,7 +296,7 @@ void test_svstnt1w_scatter_u64base_index_s64(svbool_t pg, svuint64_t bases, int6
 // CPP-CHECK-NEXT:    ret void
 //
 void test_svstnt1w_scatter_u64base_index_u64(svbool_t pg, svuint64_t bases, int64_t index, svuint64_t data) {
-  // overload-warning at +2 {{implicit declaration of function 'svstnt1w_scatter_index'}}
-  // expected-warning at +1 {{implicit declaration of function 'svstnt1w_scatter_u64base_index_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svstnt1w_scatter_index'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svstnt1w_scatter_u64base_index_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svstnt1w_scatter, _u64base, _index, _u64)(pg, bases, index, data);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c
index fb19b837ce20d..11a3bb49ce721 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svsubhnb_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svsubhnb_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svsubhnb_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svsubhnb_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svsubhnb_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svsubhnb_s64(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svsubhnb_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svsubhnb_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svsubhnb_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svsubhnb_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svsubhnb_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svsubhnb_u64(svuint64_t op1, svuint64_t op2)
 //
 svint8_t test_svsubhnb_n_s16(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svsubhnb_n_s16(svint16_t op1, int16_t op2)
 //
 svint16_t test_svsubhnb_n_s32(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svsubhnb_n_s32(svint32_t op1, int32_t op2)
 //
 svint32_t test_svsubhnb_n_s64(svint64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svsubhnb_n_s64(svint64_t op1, int64_t op2)
 //
 svuint8_t test_svsubhnb_n_u16(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svsubhnb_n_u16(svuint16_t op1, uint16_t op2)
 //
 svuint16_t test_svsubhnb_n_u32(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svsubhnb_n_u32(svuint32_t op1, uint32_t op2)
 //
 svuint32_t test_svsubhnb_n_u64(svuint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c
index bed6167851d6e..3133e1ccd16e7 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subhnt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svsubhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_s16,,)(op1, op2, op3);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svsubhnt_s16(svint8_t op1, svint16_t op2, svint16_t op3)
 //
 svint16_t test_svsubhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_s32,,)(op1, op2, op3);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svsubhnt_s32(svint16_t op1, svint32_t op2, svint32_t op3)
 //
 svint32_t test_svsubhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_s64,,)(op1, op2, op3);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svsubhnt_s64(svint32_t op1, svint64_t op2, svint64_t op3)
 //
 svuint8_t test_svsubhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_u16,,)(op1, op2, op3);
 }
 
@@ -97,8 +97,8 @@ svuint8_t test_svsubhnt_u16(svuint8_t op1, svuint16_t op2, svuint16_t op3)
 //
 svuint16_t test_svsubhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_u32,,)(op1, op2, op3);
 }
 
@@ -114,8 +114,8 @@ svuint16_t test_svsubhnt_u32(svuint16_t op1, svuint32_t op2, svuint32_t op3)
 //
 svuint32_t test_svsubhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_u64,,)(op1, op2, op3);
 }
 
@@ -135,8 +135,8 @@ svuint32_t test_svsubhnt_u64(svuint32_t op1, svuint64_t op2, svuint64_t op3)
 //
 svint8_t test_svsubhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_n_s16,,)(op1, op2, op3);
 }
 
@@ -156,8 +156,8 @@ svint8_t test_svsubhnt_n_s16(svint8_t op1, svint16_t op2, int16_t op3)
 //
 svint16_t test_svsubhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_n_s32,,)(op1, op2, op3);
 }
 
@@ -177,8 +177,8 @@ svint16_t test_svsubhnt_n_s32(svint16_t op1, svint32_t op2, int32_t op3)
 //
 svint32_t test_svsubhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_n_s64,,)(op1, op2, op3);
 }
 
@@ -198,8 +198,8 @@ svint32_t test_svsubhnt_n_s64(svint32_t op1, svint64_t op2, int64_t op3)
 //
 svuint8_t test_svsubhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_n_u16,,)(op1, op2, op3);
 }
 
@@ -219,8 +219,8 @@ svuint8_t test_svsubhnt_n_u16(svuint8_t op1, svuint16_t op2, uint16_t op3)
 //
 svuint16_t test_svsubhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_n_u32,,)(op1, op2, op3);
 }
 
@@ -240,7 +240,7 @@ svuint16_t test_svsubhnt_n_u32(svuint16_t op1, svuint32_t op2, uint32_t op3)
 //
 svuint32_t test_svsubhnt_n_u64(svuint32_t op1, svuint64_t op2, uint64_t op3)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubhnt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubhnt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubhnt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubhnt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubhnt,_n_u64,,)(op1, op2, op3);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c
index 4294320c3bb0f..98dbc7234b804 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svsublb_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svsublb_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svsublb_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svsublb_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svsublb_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svsublb_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svsublb_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svsublb_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svsublb_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svsublb_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svsublb_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svsublb_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svsublb_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svsublb_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svsublb_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svsublb_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svsublb_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svsublb_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svsublb_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svsublb_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svsublb_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svsublb_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svsublb_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c
index 94eb066b28b4a..e6c08b8c842a3 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublbt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svsublbt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublbt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublbt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublbt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svsublbt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svsublbt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublbt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublbt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublbt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svsublbt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svsublbt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublbt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublbt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublbt,_s64,,)(op1, op2);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svsublbt_s64(svint32_t op1, svint32_t op2)
 //
 svint16_t test_svsublbt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublbt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublbt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublbt,_n_s16,,)(op1, op2);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svsublbt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svsublbt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublbt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublbt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublbt,_n_s32,,)(op1, op2);
 }
 
@@ -126,7 +126,7 @@ svint32_t test_svsublbt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svsublbt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublbt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublbt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublbt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublbt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublbt,_n_s64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c
index 15d6c24944ee7..d4310c93355ef 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_sublt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svsublt_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svsublt_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svsublt_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svsublt_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svsublt_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svsublt_s64(svint32_t op1, svint32_t op2)
 //
 svuint16_t test_svsublt_u16(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svsublt_u16(svuint8_t op1, svuint8_t op2)
 //
 svuint32_t test_svsublt_u32(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svsublt_u32(svuint16_t op1, svuint16_t op2)
 //
 svuint64_t test_svsublt_u64(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svsublt_u64(svuint32_t op1, svuint32_t op2)
 //
 svint16_t test_svsublt_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svsublt_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svsublt_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svsublt_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svsublt_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svsublt_n_s64(svint32_t op1, int32_t op2)
 //
 svuint16_t test_svsublt_n_u16(svuint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svsublt_n_u16(svuint8_t op1, uint8_t op2)
 //
 svuint32_t test_svsublt_n_u32(svuint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svsublt_n_u32(svuint16_t op1, uint16_t op2)
 //
 svuint64_t test_svsublt_n_u64(svuint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsublt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsublt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsublt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsublt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsublt,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c
index 686bee73e2c9d..5c7b8b424d5e8 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subltb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svsubltb_s16(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubltb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubltb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubltb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubltb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubltb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svsubltb_s16(svint8_t op1, svint8_t op2)
 //
 svint32_t test_svsubltb_s32(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubltb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubltb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubltb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubltb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubltb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svsubltb_s32(svint16_t op1, svint16_t op2)
 //
 svint64_t test_svsubltb_s64(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubltb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubltb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubltb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubltb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubltb,_s64,,)(op1, op2);
 }
 
@@ -84,8 +84,8 @@ svint64_t test_svsubltb_s64(svint32_t op1, svint32_t op2)
 //
 svint16_t test_svsubltb_n_s16(svint8_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubltb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubltb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubltb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubltb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubltb,_n_s16,,)(op1, op2);
 }
 
@@ -105,8 +105,8 @@ svint16_t test_svsubltb_n_s16(svint8_t op1, int8_t op2)
 //
 svint32_t test_svsubltb_n_s32(svint16_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubltb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubltb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubltb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubltb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubltb,_n_s32,,)(op1, op2);
 }
 
@@ -126,7 +126,7 @@ svint32_t test_svsubltb_n_s32(svint16_t op1, int16_t op2)
 //
 svint64_t test_svsubltb_n_s64(svint32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubltb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubltb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubltb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubltb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubltb,_n_s64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c
index 6549f788287b9..fb861475b99fa 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwb.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svsubwb_s16(svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svsubwb_s16(svint16_t op1, svint8_t op2)
 //
 svint32_t test_svsubwb_s32(svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svsubwb_s32(svint32_t op1, svint16_t op2)
 //
 svint64_t test_svsubwb_s64(svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svsubwb_s64(svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svsubwb_u16(svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svsubwb_u16(svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svsubwb_u32(svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svsubwb_u32(svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svsubwb_u64(svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svsubwb_u64(svuint64_t op1, svuint32_t op2)
 //
 svint16_t test_svsubwb_n_s16(svint16_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svsubwb_n_s16(svint16_t op1, int8_t op2)
 //
 svint32_t test_svsubwb_n_s32(svint32_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svsubwb_n_s32(svint32_t op1, int16_t op2)
 //
 svint64_t test_svsubwb_n_s64(svint64_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svsubwb_n_s64(svint64_t op1, int32_t op2)
 //
 svuint16_t test_svsubwb_n_u16(svuint16_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svsubwb_n_u16(svuint16_t op1, uint8_t op2)
 //
 svuint32_t test_svsubwb_n_u32(svuint32_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svsubwb_n_u32(svuint32_t op1, uint16_t op2)
 //
 svuint64_t test_svsubwb_n_u64(svuint64_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwb'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwb_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwb'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwb_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwb,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c
index 6438b5036266a..0e39974927228 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_subwt.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 #include <arm_sve.h>
 
@@ -29,8 +29,8 @@
 //
 svint16_t test_svsubwt_s16(svint16_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_s16,,)(op1, op2);
 }
 
@@ -46,8 +46,8 @@ svint16_t test_svsubwt_s16(svint16_t op1, svint8_t op2)
 //
 svint32_t test_svsubwt_s32(svint32_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_s32,,)(op1, op2);
 }
 
@@ -63,8 +63,8 @@ svint32_t test_svsubwt_s32(svint32_t op1, svint16_t op2)
 //
 svint64_t test_svsubwt_s64(svint64_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_s64,,)(op1, op2);
 }
 
@@ -80,8 +80,8 @@ svint64_t test_svsubwt_s64(svint64_t op1, svint32_t op2)
 //
 svuint16_t test_svsubwt_u16(svuint16_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_u16,,)(op1, op2);
 }
 
@@ -97,8 +97,8 @@ svuint16_t test_svsubwt_u16(svuint16_t op1, svuint8_t op2)
 //
 svuint32_t test_svsubwt_u32(svuint32_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_u32,,)(op1, op2);
 }
 
@@ -114,8 +114,8 @@ svuint32_t test_svsubwt_u32(svuint32_t op1, svuint16_t op2)
 //
 svuint64_t test_svsubwt_u64(svuint64_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_u64,,)(op1, op2);
 }
 
@@ -135,8 +135,8 @@ svuint64_t test_svsubwt_u64(svuint64_t op1, svuint32_t op2)
 //
 svint16_t test_svsubwt_n_s16(svint16_t op1, int8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_n_s16,,)(op1, op2);
 }
 
@@ -156,8 +156,8 @@ svint16_t test_svsubwt_n_s16(svint16_t op1, int8_t op2)
 //
 svint32_t test_svsubwt_n_s32(svint32_t op1, int16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_n_s32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svint32_t test_svsubwt_n_s32(svint32_t op1, int16_t op2)
 //
 svint64_t test_svsubwt_n_s64(svint64_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_n_s64,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svint64_t test_svsubwt_n_s64(svint64_t op1, int32_t op2)
 //
 svuint16_t test_svsubwt_n_u16(svuint16_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_n_u16,,)(op1, op2);
 }
 
@@ -219,8 +219,8 @@ svuint16_t test_svsubwt_n_u16(svuint16_t op1, uint8_t op2)
 //
 svuint32_t test_svsubwt_n_u32(svuint32_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_n_u32,,)(op1, op2);
 }
 
@@ -240,7 +240,7 @@ svuint32_t test_svsubwt_n_u32(svuint32_t op1, uint16_t op2)
 //
 svuint64_t test_svsubwt_n_u64(svuint64_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svsubwt'}}
-  // expected-warning at +1 {{implicit declaration of function 'svsubwt_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svsubwt'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svsubwt_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svsubwt,_n_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c
index 270ffb4362284..0a49aea64afd7 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2-bfloat.c
@@ -4,9 +4,9 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 #include <arm_sve.h>
 
@@ -32,7 +32,7 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP2]]
 //
 svbfloat16_t test_svtbl2_bf16(svbfloat16x2_t data, svuint16_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_bf16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2, _bf16, , )(data, indices);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c
index f431223e084d4..ab373b9615993 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbl2.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -33,8 +33,8 @@
 //
 svint8_t test_svtbl2_s8(svint8x2_t data, svuint8_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_s8,,)(data, indices);
 }
 
@@ -54,8 +54,8 @@ svint8_t test_svtbl2_s8(svint8x2_t data, svuint8_t indices)
 //
 svint16_t test_svtbl2_s16(svint16x2_t data, svuint16_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_s16,,)(data, indices);
 }
 
@@ -75,8 +75,8 @@ svint16_t test_svtbl2_s16(svint16x2_t data, svuint16_t indices)
 //
 svint32_t test_svtbl2_s32(svint32x2_t data, svuint32_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_s32,,)(data, indices);
 }
 
@@ -96,8 +96,8 @@ svint32_t test_svtbl2_s32(svint32x2_t data, svuint32_t indices)
 //
 svint64_t test_svtbl2_s64(svint64x2_t data, svuint64_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_s64,,)(data, indices);
 }
 
@@ -117,8 +117,8 @@ svint64_t test_svtbl2_s64(svint64x2_t data, svuint64_t indices)
 //
 svuint8_t test_svtbl2_u8(svuint8x2_t data, svuint8_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_u8,,)(data, indices);
 }
 
@@ -138,8 +138,8 @@ svuint8_t test_svtbl2_u8(svuint8x2_t data, svuint8_t indices)
 //
 svuint16_t test_svtbl2_u16(svuint16x2_t data, svuint16_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_u16,,)(data, indices);
 }
 
@@ -159,8 +159,8 @@ svuint16_t test_svtbl2_u16(svuint16x2_t data, svuint16_t indices)
 //
 svuint32_t test_svtbl2_u32(svuint32x2_t data, svuint32_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_u32,,)(data, indices);
 }
 
@@ -180,8 +180,8 @@ svuint32_t test_svtbl2_u32(svuint32x2_t data, svuint32_t indices)
 //
 svuint64_t test_svtbl2_u64(svuint64x2_t data, svuint64_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_u64,,)(data, indices);
 }
 
@@ -201,8 +201,8 @@ svuint64_t test_svtbl2_u64(svuint64x2_t data, svuint64_t indices)
 //
 svfloat16_t test_svtbl2_f16(svfloat16x2_t data, svuint16_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_f16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_f16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_f16,,)(data, indices);
 }
 
@@ -222,8 +222,8 @@ svfloat16_t test_svtbl2_f16(svfloat16x2_t data, svuint16_t indices)
 //
 svfloat32_t test_svtbl2_f32(svfloat32x2_t data, svuint32_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_f32,,)(data, indices);
 }
 
@@ -243,7 +243,7 @@ svfloat32_t test_svtbl2_f32(svfloat32x2_t data, svuint32_t indices)
 //
 svfloat64_t test_svtbl2_f64(svfloat64x2_t data, svuint64_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbl2'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbl2_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbl2'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbl2_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbl2,_f64,,)(data, indices);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c
index 8a82c56c6c8d9..f064239e4328c 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx-bfloat.c
@@ -4,9 +4,9 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +bf16 -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error -verify-ignore-unexpected=note %s
 
 #include <arm_sve.h>
 
@@ -28,7 +28,7 @@
 // CPP-CHECK-NEXT:    ret <vscale x 8 x bfloat> [[TMP0]]
 //
 svbfloat16_t test_svtbx_bf16(svbfloat16_t fallback, svbfloat16_t data, svuint16_t indices) {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_bf16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx, _bf16, , )(fallback, data, indices);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c
index d7f2f14153d24..4684bd4b07cf8 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_tbx.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svtbx_s8(svint8_t fallback, svint8_t data, svuint8_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_s8,,)(fallback, data, indices);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svtbx_s8(svint8_t fallback, svint8_t data, svuint8_t indices)
 //
 svint16_t test_svtbx_s16(svint16_t fallback, svint16_t data, svuint16_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_s16,,)(fallback, data, indices);
 }
 
@@ -63,8 +63,8 @@ svint16_t test_svtbx_s16(svint16_t fallback, svint16_t data, svuint16_t indices)
 //
 svint32_t test_svtbx_s32(svint32_t fallback, svint32_t data, svuint32_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_s32,,)(fallback, data, indices);
 }
 
@@ -80,8 +80,8 @@ svint32_t test_svtbx_s32(svint32_t fallback, svint32_t data, svuint32_t indices)
 //
 svint64_t test_svtbx_s64(svint64_t fallback, svint64_t data, svuint64_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_s64,,)(fallback, data, indices);
 }
 
@@ -97,8 +97,8 @@ svint64_t test_svtbx_s64(svint64_t fallback, svint64_t data, svuint64_t indices)
 //
 svuint8_t test_svtbx_u8(svuint8_t fallback, svuint8_t data, svuint8_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_u8,,)(fallback, data, indices);
 }
 
@@ -114,8 +114,8 @@ svuint8_t test_svtbx_u8(svuint8_t fallback, svuint8_t data, svuint8_t indices)
 //
 svuint16_t test_svtbx_u16(svuint16_t fallback, svuint16_t data, svuint16_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_u16,,)(fallback, data, indices);
 }
 
@@ -131,8 +131,8 @@ svuint16_t test_svtbx_u16(svuint16_t fallback, svuint16_t data, svuint16_t indic
 //
 svuint32_t test_svtbx_u32(svuint32_t fallback, svuint32_t data, svuint32_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_u32,,)(fallback, data, indices);
 }
 
@@ -148,8 +148,8 @@ svuint32_t test_svtbx_u32(svuint32_t fallback, svuint32_t data, svuint32_t indic
 //
 svuint64_t test_svtbx_u64(svuint64_t fallback, svuint64_t data, svuint64_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_u64,,)(fallback, data, indices);
 }
 
@@ -165,8 +165,8 @@ svuint64_t test_svtbx_u64(svuint64_t fallback, svuint64_t data, svuint64_t indic
 //
 svfloat16_t test_svtbx_f16(svfloat16_t fallback, svfloat16_t data, svuint16_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_f16'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_f16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_f16,,)(fallback, data, indices);
 }
 
@@ -182,8 +182,8 @@ svfloat16_t test_svtbx_f16(svfloat16_t fallback, svfloat16_t data, svuint16_t in
 //
 svfloat32_t test_svtbx_f32(svfloat32_t fallback, svfloat32_t data, svuint32_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_f32,,)(fallback, data, indices);
 }
 
@@ -199,7 +199,7 @@ svfloat32_t test_svtbx_f32(svfloat32_t fallback, svfloat32_t data, svuint32_t in
 //
 svfloat64_t test_svtbx_f64(svfloat64_t fallback, svfloat64_t data, svuint64_t indices)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svtbx'}}
-  // expected-warning at +1 {{implicit declaration of function 'svtbx_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svtbx'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svtbx_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svtbx,_f64,,)(fallback, data, indices);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c
index c99271e707994..f351f5a839978 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_uqadd.c
@@ -5,8 +5,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 #include <arm_sve.h>
 
 #ifdef SVE_OVERLOADED_FORMS
@@ -28,8 +28,8 @@
 //
 svint8_t test_svuqadd_u8_m(svbool_t pg, svint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s8,_m,)(pg, op1, op2);
 }
 
@@ -47,8 +47,8 @@ svint8_t test_svuqadd_u8_m(svbool_t pg, svint8_t op1, svuint8_t op2)
 //
 svint16_t test_svuqadd_u16_m(svbool_t pg, svint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s16,_m,)(pg, op1, op2);
 }
 
@@ -67,8 +67,8 @@ svint16_t test_svuqadd_u16_m(svbool_t pg, svint16_t op1, svuint16_t op2)
 svint32_t test_svuqadd_u32_m(svbool_t pg, svint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svuqadd_u32_m
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s32,_m,)(pg, op1, op2);
 }
 
@@ -86,8 +86,8 @@ svint32_t test_svuqadd_u32_m(svbool_t pg, svint32_t op1, svuint32_t op2)
 //
 svint64_t test_svuqadd_u64_m(svbool_t pg, svint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s64,_m,)(pg, op1, op2);
 }
 
@@ -107,8 +107,8 @@ svint64_t test_svuqadd_u64_m(svbool_t pg, svint64_t op1, svuint64_t op2)
 //
 svint8_t test_svuqadd_n_s8_m(svbool_t pg, svint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s8_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s8_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s8,_m,)(pg, op1, op2);
 }
 
@@ -130,8 +130,8 @@ svint8_t test_svuqadd_n_s8_m(svbool_t pg, svint8_t op1, uint8_t op2)
 //
 svint16_t test_svuqadd_n_s16_m(svbool_t pg, svint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s16_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s16_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s16,_m,)(pg, op1, op2);
 }
 
@@ -153,8 +153,8 @@ svint16_t test_svuqadd_n_s16_m(svbool_t pg, svint16_t op1, uint16_t op2)
 //
 svint32_t test_svuqadd_n_s32_m(svbool_t pg, svint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s32_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s32_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s32,_m,)(pg, op1, op2);
 }
 
@@ -176,8 +176,8 @@ svint32_t test_svuqadd_n_s32_m(svbool_t pg, svint32_t op1, uint32_t op2)
 //
 svint64_t test_svuqadd_n_s64_m(svbool_t pg, svint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_m'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s64_m'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_m'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s64_m'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s64,_m,)(pg, op1, op2);
 }
 
@@ -195,8 +195,8 @@ svint64_t test_svuqadd_n_s64_m(svbool_t pg, svint64_t op1, uint64_t op2)
 //
 svint8_t test_svuqadd_u8_z(svbool_t pg, svint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s8,_z,)(pg, op1, op2);
 }
 
@@ -216,8 +216,8 @@ svint8_t test_svuqadd_u8_z(svbool_t pg, svint8_t op1, svuint8_t op2)
 //
 svint16_t test_svuqadd_u16_z(svbool_t pg, svint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s16,_z,)(pg, op1, op2);
 }
 
@@ -237,8 +237,8 @@ svint16_t test_svuqadd_u16_z(svbool_t pg, svint16_t op1, svuint16_t op2)
 //
 svint32_t test_svuqadd_u32_z(svbool_t pg, svint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s32,_z,)(pg, op1, op2);
 }
 
@@ -258,8 +258,8 @@ svint32_t test_svuqadd_u32_z(svbool_t pg, svint32_t op1, svuint32_t op2)
 //
 svint64_t test_svuqadd_u64_z(svbool_t pg, svint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s64,_z,)(pg, op1, op2);
 }
 
@@ -281,8 +281,8 @@ svint64_t test_svuqadd_u64_z(svbool_t pg, svint64_t op1, svuint64_t op2)
 //
 svint8_t test_svuqadd_n_s8_z(svbool_t pg, svint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s8_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s8_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s8,_z,)(pg, op1, op2);
 }
 
@@ -306,8 +306,8 @@ svint8_t test_svuqadd_n_s8_z(svbool_t pg, svint8_t op1, uint8_t op2)
 //
 svint16_t test_svuqadd_n_s16_z(svbool_t pg, svint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s16_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s16_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s16,_z,)(pg, op1, op2);
 }
 
@@ -331,8 +331,8 @@ svint16_t test_svuqadd_n_s16_z(svbool_t pg, svint16_t op1, uint16_t op2)
 //
 svint32_t test_svuqadd_n_s32_z(svbool_t pg, svint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s32_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s32_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s32,_z,)(pg, op1, op2);
 }
 
@@ -356,8 +356,8 @@ svint32_t test_svuqadd_n_s32_z(svbool_t pg, svint32_t op1, uint32_t op2)
 //
 svint64_t test_svuqadd_n_s64_z(svbool_t pg, svint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_z'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s64_z'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_z'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s64_z'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s64,_z,)(pg, op1, op2);
 }
 
@@ -373,8 +373,8 @@ svint64_t test_svuqadd_n_s64_z(svbool_t pg, svint64_t op1, uint64_t op2)
 //
 svint8_t test_svuqadd_u8_x(svbool_t pg, svint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s8,_x,)(pg, op1, op2);
 }
 
@@ -392,8 +392,8 @@ svint8_t test_svuqadd_u8_x(svbool_t pg, svint8_t op1, svuint8_t op2)
 //
 svint16_t test_svuqadd_u16_x(svbool_t pg, svint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s16,_x,)(pg, op1, op2);
 }
 
@@ -412,8 +412,8 @@ svint16_t test_svuqadd_u16_x(svbool_t pg, svint16_t op1, svuint16_t op2)
 svint32_t test_svuqadd_u32_x(svbool_t pg, svint32_t op1, svuint32_t op2)
 {
   // CHECKA-LABEL: test_svuqadd_u32_x
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s32,_x,)(pg, op1, op2);
 }
 
@@ -431,8 +431,8 @@ svint32_t test_svuqadd_u32_x(svbool_t pg, svint32_t op1, svuint32_t op2)
 //
 svint64_t test_svuqadd_u64_x(svbool_t pg, svint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_s64,_x,)(pg, op1, op2);
 }
 
@@ -452,8 +452,8 @@ svint64_t test_svuqadd_u64_x(svbool_t pg, svint64_t op1, svuint64_t op2)
 //
 svint8_t test_svuqadd_n_s8_x(svbool_t pg, svint8_t op1, uint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s8_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s8_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s8,_x,)(pg, op1, op2);
 }
 
@@ -475,8 +475,8 @@ svint8_t test_svuqadd_n_s8_x(svbool_t pg, svint8_t op1, uint8_t op2)
 //
 svint16_t test_svuqadd_n_s16_x(svbool_t pg, svint16_t op1, uint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s16_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s16_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s16,_x,)(pg, op1, op2);
 }
 
@@ -498,8 +498,8 @@ svint16_t test_svuqadd_n_s16_x(svbool_t pg, svint16_t op1, uint16_t op2)
 //
 svint32_t test_svuqadd_n_s32_x(svbool_t pg, svint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s32_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s32_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s32,_x,)(pg, op1, op2);
 }
 
@@ -521,7 +521,7 @@ svint32_t test_svuqadd_n_s32_x(svbool_t pg, svint32_t op1, uint32_t op2)
 //
 svint64_t test_svuqadd_n_s64_x(svbool_t pg, svint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svuqadd_x'}}
-  // expected-warning at +1 {{implicit declaration of function 'svuqadd_n_s64_x'}}
+  // overload-warning at +2 {{call to undeclared function 'svuqadd_x'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svuqadd_n_s64_x'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svuqadd,_n_s64,_x,)(pg, op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c
index 4117c7716213a..a6f05886e6d53 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilege.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svbool_t test_svwhilege_b8_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b8_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b8_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b8,_s32,,)(op1, op2);
 }
 
@@ -48,8 +48,8 @@ svbool_t test_svwhilege_b8_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilege_b16_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b16_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b16_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b16,_s32,,)(op1, op2);
 }
 
@@ -67,8 +67,8 @@ svbool_t test_svwhilege_b16_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilege_b32_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b32_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b32_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b32,_s32,,)(op1, op2);
 }
 
@@ -86,8 +86,8 @@ svbool_t test_svwhilege_b32_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilege_b64_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b64_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b64_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b64,_s32,,)(op1, op2);
 }
 
@@ -103,8 +103,8 @@ svbool_t test_svwhilege_b64_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilege_b8_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b8_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b8_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b8,_u32,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svbool_t test_svwhilege_b8_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilege_b16_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b16_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b16_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b16,_u32,,)(op1, op2);
 }
 
@@ -141,8 +141,8 @@ svbool_t test_svwhilege_b16_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilege_b32_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b32_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b32_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b32,_u32,,)(op1, op2);
 }
 
@@ -160,8 +160,8 @@ svbool_t test_svwhilege_b32_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilege_b64_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b64_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b64_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b64,_u32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svbool_t test_svwhilege_b64_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilege_b8_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b8_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b8_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b8,_s64,,)(op1, op2);
 }
 
@@ -196,8 +196,8 @@ svbool_t test_svwhilege_b8_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilege_b16_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b16_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b16_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b16,_s64,,)(op1, op2);
 }
 
@@ -215,8 +215,8 @@ svbool_t test_svwhilege_b16_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilege_b32_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b32_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b32_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b32,_s64,,)(op1, op2);
 }
 
@@ -234,8 +234,8 @@ svbool_t test_svwhilege_b32_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilege_b64_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b64_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b64_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b64,_s64,,)(op1, op2);
 }
 
@@ -251,8 +251,8 @@ svbool_t test_svwhilege_b64_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilege_b8_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b8_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b8_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b8,_u64,,)(op1, op2);
 }
 
@@ -270,8 +270,8 @@ svbool_t test_svwhilege_b8_u64(uint64_t op1, uint64_t op2)
 //
 svbool_t test_svwhilege_b16_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b16_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b16_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b16,_u64,,)(op1, op2);
 }
 
@@ -289,8 +289,8 @@ svbool_t test_svwhilege_b16_u64(uint64_t op1, uint64_t op2)
 //
 svbool_t test_svwhilege_b32_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b32_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b32_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b32,_u64,,)(op1, op2);
 }
 
@@ -308,7 +308,7 @@ svbool_t test_svwhilege_b32_u64(uint64_t op1, uint64_t op2)
 //
 svbool_t test_svwhilege_b64_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilege_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilege_b64_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilege_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilege_b64_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilege_b64,_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c
index 67cc7c8180ba7..104e306f7645f 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilegt.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svbool_t test_svwhilegt_b8_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b8_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b8_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b8,_s32,,)(op1, op2);
 }
 
@@ -48,8 +48,8 @@ svbool_t test_svwhilegt_b8_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilegt_b16_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b16_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b16_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b16,_s32,,)(op1, op2);
 }
 
@@ -67,8 +67,8 @@ svbool_t test_svwhilegt_b16_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilegt_b32_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b32_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b32_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b32,_s32,,)(op1, op2);
 }
 
@@ -86,8 +86,8 @@ svbool_t test_svwhilegt_b32_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilegt_b64_s32(int32_t op1, int32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b64_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b64_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b64,_s32,,)(op1, op2);
 }
 
@@ -103,8 +103,8 @@ svbool_t test_svwhilegt_b64_s32(int32_t op1, int32_t op2)
 //
 svbool_t test_svwhilegt_b8_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b8_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b8_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b8,_u32,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svbool_t test_svwhilegt_b8_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilegt_b16_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b16_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b16_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b16,_u32,,)(op1, op2);
 }
 
@@ -141,8 +141,8 @@ svbool_t test_svwhilegt_b16_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilegt_b32_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b32_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b32_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b32,_u32,,)(op1, op2);
 }
 
@@ -160,8 +160,8 @@ svbool_t test_svwhilegt_b32_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilegt_b64_u32(uint32_t op1, uint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b64_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b64_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b64,_u32,,)(op1, op2);
 }
 
@@ -177,8 +177,8 @@ svbool_t test_svwhilegt_b64_u32(uint32_t op1, uint32_t op2)
 //
 svbool_t test_svwhilegt_b8_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b8_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b8_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b8,_s64,,)(op1, op2);
 }
 
@@ -196,8 +196,8 @@ svbool_t test_svwhilegt_b8_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilegt_b16_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b16_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b16_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b16,_s64,,)(op1, op2);
 }
 
@@ -215,8 +215,8 @@ svbool_t test_svwhilegt_b16_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilegt_b32_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b32_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b32_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b32,_s64,,)(op1, op2);
 }
 
@@ -234,8 +234,8 @@ svbool_t test_svwhilegt_b32_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilegt_b64_s64(int64_t op1, int64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b64_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b64_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b64,_s64,,)(op1, op2);
 }
 
@@ -251,8 +251,8 @@ svbool_t test_svwhilegt_b64_s64(int64_t op1, int64_t op2)
 //
 svbool_t test_svwhilegt_b8_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b8'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b8_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b8'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b8_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b8,_u64,,)(op1, op2);
 }
 
@@ -270,8 +270,8 @@ svbool_t test_svwhilegt_b8_u64(uint64_t op1, uint64_t op2)
 //
 svbool_t test_svwhilegt_b16_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b16'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b16_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b16'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b16_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b16,_u64,,)(op1, op2);
 }
 
@@ -289,8 +289,8 @@ svbool_t test_svwhilegt_b16_u64(uint64_t op1, uint64_t op2)
 //
 svbool_t test_svwhilegt_b32_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b32'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b32_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b32'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b32_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b32,_u64,,)(op1, op2);
 }
 
@@ -308,7 +308,7 @@ svbool_t test_svwhilegt_b32_u64(uint64_t op1, uint64_t op2)
 //
 svbool_t test_svwhilegt_b64_u64(uint64_t op1, uint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilegt_b64'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilegt_b64_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilegt_b64'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilegt_b64_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilegt_b64,_u64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c
index e3eb3171f3fbb..de55d80abcea7 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw-bfloat.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_SVE2 -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_SVE2 -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_SVE2 -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,7 +31,7 @@
 //
 svbool_t test_svwhilerw_bf16(const bfloat16_t *op1, const bfloat16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_bf16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c
index ab6c688af5156..baba180caaa08 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilerw.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svbool_t test_svwhilerw_s8(const int8_t *op1, const int8_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_s8,,)(op1, op2);
 }
 
@@ -48,8 +48,8 @@ svbool_t test_svwhilerw_s8(const int8_t *op1, const int8_t *op2)
 //
 svbool_t test_svwhilerw_s16(const int16_t *op1, const int16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_s16,,)(op1, op2);
 }
 
@@ -67,8 +67,8 @@ svbool_t test_svwhilerw_s16(const int16_t *op1, const int16_t *op2)
 //
 svbool_t test_svwhilerw_s32(const int32_t *op1, const int32_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_s32,,)(op1, op2);
 }
 
@@ -86,8 +86,8 @@ svbool_t test_svwhilerw_s32(const int32_t *op1, const int32_t *op2)
 //
 svbool_t test_svwhilerw_s64(const int64_t *op1, const int64_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_s64,,)(op1, op2);
 }
 
@@ -103,8 +103,8 @@ svbool_t test_svwhilerw_s64(const int64_t *op1, const int64_t *op2)
 //
 svbool_t test_svwhilerw_u8(const uint8_t *op1, const uint8_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_u8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svbool_t test_svwhilerw_u8(const uint8_t *op1, const uint8_t *op2)
 //
 svbool_t test_svwhilerw_u16(const uint16_t *op1, const uint16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_u16,,)(op1, op2);
 }
 
@@ -141,8 +141,8 @@ svbool_t test_svwhilerw_u16(const uint16_t *op1, const uint16_t *op2)
 //
 svbool_t test_svwhilerw_u32(const uint32_t *op1, const uint32_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_u32,,)(op1, op2);
 }
 
@@ -160,8 +160,8 @@ svbool_t test_svwhilerw_u32(const uint32_t *op1, const uint32_t *op2)
 //
 svbool_t test_svwhilerw_u64(const uint64_t *op1, const uint64_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_u64,,)(op1, op2);
 }
 
@@ -179,8 +179,8 @@ svbool_t test_svwhilerw_u64(const uint64_t *op1, const uint64_t *op2)
 //
 svbool_t test_svwhilerw_f16(const float16_t *op1, const float16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_f16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_f16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_f16,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svbool_t test_svwhilerw_f16(const float16_t *op1, const float16_t *op2)
 //
 svbool_t test_svwhilerw_f32(const float32_t *op1, const float32_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_f32,,)(op1, op2);
 }
 
@@ -217,7 +217,7 @@ svbool_t test_svwhilerw_f32(const float32_t *op1, const float32_t *op2)
 //
 svbool_t test_svwhilerw_f64(const float64_t *op1, const float64_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilerw'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilerw_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilerw'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilerw_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilerw,_f64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c
index 4f24fb972711e..e6c6903ea6a0d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr-bfloat.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_SVE2 -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_SVE2 -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_SVE2 -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -target-feature +bf16 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -D__ARM_FEATURE_SVE -D__ARM_FEATURE_BF16_SCALAR_ARITHMETIC -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -target-feature +bf16 -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -31,7 +31,7 @@
 //
 svbool_t test_svwhilewr_bf16(const bfloat16_t *op1, const bfloat16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_bf16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_bf16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_bf16,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c
index 04e796c3396fc..4748f4d3dc567 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_whilewr.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -no-opaque-pointers -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svbool_t test_svwhilewr_s8(const int8_t *op1, const int8_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_s8,,)(op1, op2);
 }
 
@@ -48,8 +48,8 @@ svbool_t test_svwhilewr_s8(const int8_t *op1, const int8_t *op2)
 //
 svbool_t test_svwhilewr_s16(const int16_t *op1, const int16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_s16,,)(op1, op2);
 }
 
@@ -67,8 +67,8 @@ svbool_t test_svwhilewr_s16(const int16_t *op1, const int16_t *op2)
 //
 svbool_t test_svwhilewr_s32(const int32_t *op1, const int32_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_s32,,)(op1, op2);
 }
 
@@ -86,8 +86,8 @@ svbool_t test_svwhilewr_s32(const int32_t *op1, const int32_t *op2)
 //
 svbool_t test_svwhilewr_s64(const int64_t *op1, const int64_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_s64,,)(op1, op2);
 }
 
@@ -103,8 +103,8 @@ svbool_t test_svwhilewr_s64(const int64_t *op1, const int64_t *op2)
 //
 svbool_t test_svwhilewr_u8(const uint8_t *op1, const uint8_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_u8,,)(op1, op2);
 }
 
@@ -122,8 +122,8 @@ svbool_t test_svwhilewr_u8(const uint8_t *op1, const uint8_t *op2)
 //
 svbool_t test_svwhilewr_u16(const uint16_t *op1, const uint16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_u16,,)(op1, op2);
 }
 
@@ -141,8 +141,8 @@ svbool_t test_svwhilewr_u16(const uint16_t *op1, const uint16_t *op2)
 //
 svbool_t test_svwhilewr_u32(const uint32_t *op1, const uint32_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_u32,,)(op1, op2);
 }
 
@@ -160,8 +160,8 @@ svbool_t test_svwhilewr_u32(const uint32_t *op1, const uint32_t *op2)
 //
 svbool_t test_svwhilewr_u64(const uint64_t *op1, const uint64_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_u64,,)(op1, op2);
 }
 
@@ -179,8 +179,8 @@ svbool_t test_svwhilewr_u64(const uint64_t *op1, const uint64_t *op2)
 //
 svbool_t test_svwhilewr_f16(const float16_t *op1, const float16_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_f16'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_f16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_f16,,)(op1, op2);
 }
 
@@ -198,8 +198,8 @@ svbool_t test_svwhilewr_f16(const float16_t *op1, const float16_t *op2)
 //
 svbool_t test_svwhilewr_f32(const float32_t *op1, const float32_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_f32'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_f32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_f32,,)(op1, op2);
 }
 
@@ -217,7 +217,7 @@ svbool_t test_svwhilewr_f32(const float32_t *op1, const float32_t *op2)
 //
 svbool_t test_svwhilewr_f64(const float64_t *op1, const float64_t *op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svwhilewr'}}
-  // expected-warning at +1 {{implicit declaration of function 'svwhilewr_f64'}}
+  // overload-warning at +2 {{call to undeclared function 'svwhilewr'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svwhilewr_f64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svwhilewr,_f64,,)(op1, op2);
 }

diff  --git a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c
index 10dc4539d724c..8000c68729e4d 100644
--- a/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c
+++ b/clang/test/CodeGen/aarch64-sve2-intrinsics/acle_sve2_xar.c
@@ -3,8 +3,8 @@
 // RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - %s | FileCheck %s
 // RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve2 -fallow-half-arguments-and-returns -S -O1 -Werror -Wall -emit-llvm -o - -x c++ %s | FileCheck %s -check-prefix=CPP-CHECK
-// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify -verify-ignore-unexpected=error %s
-// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -std=c99 -verify=overload -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify -verify-ignore-unexpected=error %s
+// RUN: %clang_cc1 -DSVE_OVERLOADED_FORMS -triple aarch64-none-linux-gnu -target-feature +sve -fallow-half-arguments-and-returns -fsyntax-only -Wno-error=implicit-function-declaration -verify=overload -verify-ignore-unexpected=error %s
 
 // REQUIRES: aarch64-registered-target
 
@@ -29,8 +29,8 @@
 //
 svint8_t test_svxar_n_s8(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s8,,)(op1, op2, 1);
 }
 
@@ -46,8 +46,8 @@ svint8_t test_svxar_n_s8(svint8_t op1, svint8_t op2)
 //
 svint8_t test_svxar_n_s8_1(svint8_t op1, svint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s8'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s8,,)(op1, op2, 8);
 }
 
@@ -63,8 +63,8 @@ svint8_t test_svxar_n_s8_1(svint8_t op1, svint8_t op2)
 //
 svint16_t test_svxar_n_s16(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s16,,)(op1, op2, 1);
 }
 
@@ -80,8 +80,8 @@ svint16_t test_svxar_n_s16(svint16_t op1, svint16_t op2)
 //
 svint16_t test_svxar_n_s16_1(svint16_t op1, svint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s16'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s16,,)(op1, op2, 16);
 }
 
@@ -97,8 +97,8 @@ svint16_t test_svxar_n_s16_1(svint16_t op1, svint16_t op2)
 //
 svint32_t test_svxar_n_s32(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s32,,)(op1, op2, 1);
 }
 
@@ -114,8 +114,8 @@ svint32_t test_svxar_n_s32(svint32_t op1, svint32_t op2)
 //
 svint32_t test_svxar_n_s32_1(svint32_t op1, svint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s32'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s32,,)(op1, op2, 32);
 }
 
@@ -131,8 +131,8 @@ svint32_t test_svxar_n_s32_1(svint32_t op1, svint32_t op2)
 //
 svint64_t test_svxar_n_s64(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s64,,)(op1, op2, 1);
 }
 
@@ -148,8 +148,8 @@ svint64_t test_svxar_n_s64(svint64_t op1, svint64_t op2)
 //
 svint64_t test_svxar_n_s64_1(svint64_t op1, svint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_s64'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_s64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_s64,,)(op1, op2, 64);
 }
 
@@ -165,8 +165,8 @@ svint64_t test_svxar_n_s64_1(svint64_t op1, svint64_t op2)
 //
 svuint8_t test_svxar_n_u8(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u8,,)(op1, op2, 1);
 }
 
@@ -182,8 +182,8 @@ svuint8_t test_svxar_n_u8(svuint8_t op1, svuint8_t op2)
 //
 svuint8_t test_svxar_n_u8_1(svuint8_t op1, svuint8_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u8'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u8'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u8,,)(op1, op2, 8);
 }
 
@@ -199,8 +199,8 @@ svuint8_t test_svxar_n_u8_1(svuint8_t op1, svuint8_t op2)
 //
 svuint16_t test_svxar_n_u16(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u16,,)(op1, op2, 1);
 }
 
@@ -216,8 +216,8 @@ svuint16_t test_svxar_n_u16(svuint16_t op1, svuint16_t op2)
 //
 svuint16_t test_svxar_n_u16_1(svuint16_t op1, svuint16_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u16'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u16'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u16,,)(op1, op2, 16);
 }
 
@@ -233,8 +233,8 @@ svuint16_t test_svxar_n_u16_1(svuint16_t op1, svuint16_t op2)
 //
 svuint32_t test_svxar_n_u32(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u32,,)(op1, op2, 1);
 }
 
@@ -250,8 +250,8 @@ svuint32_t test_svxar_n_u32(svuint32_t op1, svuint32_t op2)
 //
 svuint32_t test_svxar_n_u32_1(svuint32_t op1, svuint32_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u32'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u32'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u32,,)(op1, op2, 32);
 }
 
@@ -267,8 +267,8 @@ svuint32_t test_svxar_n_u32_1(svuint32_t op1, svuint32_t op2)
 //
 svuint64_t test_svxar_n_u64(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u64,,)(op1, op2, 1);
 }
 
@@ -284,7 +284,7 @@ svuint64_t test_svxar_n_u64(svuint64_t op1, svuint64_t op2)
 //
 svuint64_t test_svxar_n_u64_1(svuint64_t op1, svuint64_t op2)
 {
-  // overload-warning at +2 {{implicit declaration of function 'svxar'}}
-  // expected-warning at +1 {{implicit declaration of function 'svxar_n_u64'}}
+  // overload-warning at +2 {{call to undeclared function 'svxar'; ISO C99 and later do not support implicit function declarations}}
+  // expected-warning at +1 {{call to undeclared function 'svxar_n_u64'; ISO C99 and later do not support implicit function declarations}}
   return SVE_ACLE_FUNC(svxar,_n_u64,,)(op1, op2, 64);
 }

diff  --git a/clang/test/CodeGen/arm-microsoft-intrinsics.c b/clang/test/CodeGen/arm-microsoft-intrinsics.c
index e5520ddc74ae7..eb3121bf2a1e9 100644
--- a/clang/test/CodeGen/arm-microsoft-intrinsics.c
+++ b/clang/test/CodeGen/arm-microsoft-intrinsics.c
@@ -9,21 +9,21 @@ void check__dmb(void) {
 }
 
 // CHECK-MSVC: @llvm.arm.dmb(i32 0)
-// CHECK-EABI: error: implicit declaration of function '__dmb'
+// CHECK-EABI: error: call to undeclared function '__dmb'
 
 void check__dsb(void) {
   __dsb(0);
 }
 
 // CHECK-MSVC: @llvm.arm.dsb(i32 0)
-// CHECK-EABI: error: implicit declaration of function '__dsb'
+// CHECK-EABI: error: call to undeclared function '__dsb'
 
 void check__isb(void) {
   __isb(0);
 }
 
 // CHECK-MSVC: @llvm.arm.isb(i32 0)
-// CHECK-EABI: error: implicit declaration of function '__isb'
+// CHECK-EABI: error: call to undeclared function '__isb'
 
 __INT64_TYPE__ check__ldrexd(void) {
   __INT64_TYPE__ i64;
@@ -31,33 +31,33 @@ __INT64_TYPE__ check__ldrexd(void) {
 }
 
 // CHECK-MSVC: @llvm.arm.ldrexd(i8* {{.*}})
-// CHECK-EABI: error: implicit declaration of function '__ldrexd'
+// CHECK-EABI: error: call to undeclared function '__ldrexd'
 
 unsigned int check_MoveFromCoprocessor(void) {
   return _MoveFromCoprocessor(0, 0, 0, 0, 0);
 }
 
 // CHECK-MSVC: @llvm.arm.mrc(i32 0, i32 0, i32 0, i32 0, i32 0)
-// CHECK-EABI: error: implicit declaration of function '_MoveFromCoprocessor'
+// CHECK-EABI: error: call to undeclared function '_MoveFromCoprocessor'
 
 unsigned int check_MoveFromCoprocessor2(void) {
   return _MoveFromCoprocessor2(0, 0, 0, 0, 0);
 }
 
 // CHECK-MSVC: @llvm.arm.mrc2(i32 0, i32 0, i32 0, i32 0, i32 0)
-// CHECK-EABI: error: implicit declaration of function '_MoveFromCoprocessor2'
+// CHECK-EABI: error: call to undeclared function '_MoveFromCoprocessor2'
 
 void check_MoveToCoprocessor(unsigned int value) {
   _MoveToCoprocessor(value, 10, 7, 1, 0, 0);
 }
 
 // CHECK-MSVC: @llvm.arm.mcr(i32 10, i32 7, i32 %{{[^,]*}}, i32 1, i32 0, i32 0)
-// CHECK-EABI: error: implicit declaration of function '_MoveToCoprocessor'
+// CHECK-EABI: error: call to undeclared function '_MoveToCoprocessor'
 
 void check_MoveToCoprocessor2(unsigned int value) {
   _MoveToCoprocessor2(value, 10, 7, 1, 0, 0);
 }
 
 // CHECK-MSVC: @llvm.arm.mcr2(i32 10, i32 7, i32 %{{[^,]*}}, i32 1, i32 0, i32 0)
-// CHECK-EABI: error: implicit declaration of function '_MoveToCoprocessor2'
+// CHECK-EABI: error: call to undeclared function '_MoveToCoprocessor2'
 

diff  --git a/clang/test/CodeGen/arm64-microsoft-intrinsics.c b/clang/test/CodeGen/arm64-microsoft-intrinsics.c
index 024f9ae836bae..2dd2f6c8f0351 100644
--- a/clang/test/CodeGen/arm64-microsoft-intrinsics.c
+++ b/clang/test/CodeGen/arm64-microsoft-intrinsics.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -no-opaque-pointers -triple arm64-windows -fms-compatibility -emit-llvm -o - %s \
+// RUN: %clang_cc1 -no-opaque-pointers -triple arm64-windows -Wno-implicit-function-declaration -fms-compatibility -emit-llvm -o - %s \
 // RUN:    | FileCheck %s -check-prefix CHECK-MSVC
 
 // RUN: not %clang_cc1 -no-opaque-pointers -triple arm64-linux -Werror -S -o /dev/null %s 2>&1 \
@@ -16,70 +16,70 @@ long test_InterlockedAdd_constant(long volatile *Addend) {
 // CHECK-MSVC: %[[OLDVAL:[0-9]+]] = atomicrmw add i32* %1, i32 %2 seq_cst, align 4
 // CHECK-MSVC: %[[NEWVAL:[0-9]+]] = add i32 %[[OLDVAL:[0-9]+]], %2
 // CHECK-MSVC: ret i32 %[[NEWVAL:[0-9]+]]
-// CHECK-LINUX: error: implicit declaration of function '_InterlockedAdd'
+// CHECK-LINUX: error: call to undeclared function '_InterlockedAdd'
 
 void check__dmb(void) {
   __dmb(0);
 }
 
 // CHECK-MSVC: @llvm.aarch64.dmb(i32 0)
-// CHECK-LINUX: error: implicit declaration of function '__dmb'
+// CHECK-LINUX: error: call to undeclared function '__dmb'
 
 void check__dsb(void) {
   __dsb(0);
 }
 
 // CHECK-MSVC: @llvm.aarch64.dsb(i32 0)
-// CHECK-LINUX: error: implicit declaration of function '__dsb'
+// CHECK-LINUX: error: call to undeclared function '__dsb'
 
 void check__isb(void) {
   __isb(0);
 }
 
 // CHECK-MSVC: @llvm.aarch64.isb(i32 0)
-// CHECK-LINUX: error: implicit declaration of function '__isb'
+// CHECK-LINUX: error: call to undeclared function '__isb'
 
 void check__yield(void) {
   __yield();
 }
 
 // CHECK-MSVC: @llvm.aarch64.hint(i32 1)
-// CHECK-LINUX: error: implicit declaration of function '__yield'
+// CHECK-LINUX: error: call to undeclared function '__yield'
 
 void check__wfe(void) {
   __wfe();
 }
 
 // CHECK-MSVC: @llvm.aarch64.hint(i32 2)
-// CHECK-LINUX: error: implicit declaration of function '__wfe'
+// CHECK-LINUX: error: call to undeclared function '__wfe'
 
 void check__wfi(void) {
   __wfi();
 }
 
 // CHECK-MSVC: @llvm.aarch64.hint(i32 3)
-// CHECK-LINUX: error: implicit declaration of function '__wfi'
+// CHECK-LINUX: error: call to undeclared function '__wfi'
 
 void check__sev(void) {
   __sev();
 }
 
 // CHECK-MSVC: @llvm.aarch64.hint(i32 4)
-// CHECK-LINUX: error: implicit declaration of function '__sev'
+// CHECK-LINUX: error: call to undeclared function '__sev'
 
 void check__sevl(void) {
   __sevl();
 }
 
 // CHECK-MSVC: @llvm.aarch64.hint(i32 5)
-// CHECK-LINUX: error: implicit declaration of function '__sevl'
+// CHECK-LINUX: error: call to undeclared function '__sevl'
 
 void check_ReadWriteBarrier(void) {
   _ReadWriteBarrier();
 }
 
 // CHECK-MSVC: fence syncscope("singlethread")
-// CHECK-LINUX: error: implicit declaration of function '_ReadWriteBarrier'
+// CHECK-LINUX: error: call to undeclared function '_ReadWriteBarrier'
 
 long long check_mulh(long long a, long long b) {
   return __mulh(a, b);
@@ -90,7 +90,7 @@ long long check_mulh(long long a, long long b) {
 // CHECK-MSVC: %[[PROD:.*]] = mul nsw i128 %[[ARG1]], %[[ARG2]]
 // CHECK-MSVC: %[[HIGH:.*]] = ashr i128 %[[PROD]], 64
 // CHECK-MSVC: %[[RES:.*]] = trunc i128 %[[HIGH]] to i64
-// CHECK-LINUX: error: implicit declaration of function '__mulh'
+// CHECK-LINUX: error: call to undeclared function '__mulh'
 
 unsigned long long check_umulh(unsigned long long a, unsigned long long b) {
   return __umulh(a, b);
@@ -101,7 +101,7 @@ unsigned long long check_umulh(unsigned long long a, unsigned long long b) {
 // CHECK-MSVC: %[[PROD:.*]] = mul nuw i128 %[[ARG1]], %[[ARG2]]
 // CHECK-MSVC: %[[HIGH:.*]] = lshr i128 %[[PROD]], 64
 // CHECK-MSVC: %[[RES:.*]] = trunc i128 %[[HIGH]] to i64
-// CHECK-LINUX: error: implicit declaration of function '__umulh'
+// CHECK-LINUX: error: call to undeclared function '__umulh'
 
 unsigned __int64 check__getReg(void) {
   unsigned volatile __int64 reg;

diff  --git a/clang/test/CodeGen/arm_acle.c b/clang/test/CodeGen/arm_acle.c
index 3df2af2a79363..7fbaf36aec3dc 100644
--- a/clang/test/CodeGen/arm_acle.c
+++ b/clang/test/CodeGen/arm_acle.c
@@ -1,6 +1,6 @@
 // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
 // RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -triple armv8a-none-eabi -target-feature +crc -target-feature +dsp -O0 -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s -check-prefixes=ARM,AArch32
-// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -triple aarch64-none-eabi -target-feature +neon -target-feature +crc -target-feature +crypto -O0 -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s -check-prefixes=ARM,AArch64
+// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -Wno-error=implicit-function-declaration -triple aarch64-none-eabi -target-feature +neon -target-feature +crc -target-feature +crypto -O0 -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s -check-prefixes=ARM,AArch64
 // RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -triple aarch64-none-eabi -target-feature +v8.3a -O0 -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s -check-prefixes=ARM,AArch64,AArch6483
 // RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -triple aarch64-none-eabi -target-feature +v8.5a -target-feature +rand -O0 -disable-O0-optnone -S -emit-llvm -o - %s | opt -S -mem2reg | FileCheck %s -check-prefixes=ARM,AArch64,AArch6483,AArch6485
 

diff  --git a/clang/test/CodeGen/attribute_constructor.c b/clang/test/CodeGen/attribute_constructor.c
index 6ba6d43e5f03a..9e19679209f88 100644
--- a/clang/test/CodeGen/attribute_constructor.c
+++ b/clang/test/CodeGen/attribute_constructor.c
@@ -1,5 +1,6 @@
 // RUN: %clang_cc1 %s -emit-llvm -o - | grep llvm.global_ctors
 
+extern int bar();
 void foo(void) __attribute__((constructor));
 void foo(void) {
   bar();

diff  --git a/clang/test/CodeGen/bounds-checking.c b/clang/test/CodeGen/bounds-checking.c
index 89a51b6b4acff..ca44adf5a1f27 100644
--- a/clang/test/CodeGen/bounds-checking.c
+++ b/clang/test/CodeGen/bounds-checking.c
@@ -18,6 +18,7 @@ void f2(void) {
   a[1] = 42;
 
 #ifndef NO_DYNAMIC
+  extern void *malloc(__typeof__(sizeof(0)));
   short *b = malloc(64);
   b[5] = *a + a[1] + 2;
 #endif

diff  --git a/clang/test/CodeGen/builtin-attributes.c b/clang/test/CodeGen/builtin-attributes.c
index 8112716bd7f66..100e31c88978a 100644
--- a/clang/test/CodeGen/builtin-attributes.c
+++ b/clang/test/CodeGen/builtin-attributes.c
@@ -1,6 +1,9 @@
 // REQUIRES: arm-registered-target
 // RUN: %clang_cc1 -no-opaque-pointers -triple arm-unknown-linux-gnueabi -emit-llvm -o - %s | FileCheck %s
 
+int printf(const char *, ...);
+void exit(int);
+
 // CHECK: declare i32 @printf(i8* noundef, ...)
 void f0() {
   printf("a\n");

diff  --git a/clang/test/CodeGen/builtins-arm-microsoft.c b/clang/test/CodeGen/builtins-arm-microsoft.c
index 6f7b3ea86e75a..841a8a500d533 100644
--- a/clang/test/CodeGen/builtins-arm-microsoft.c
+++ b/clang/test/CodeGen/builtins-arm-microsoft.c
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -triple thumbv7-windows -fms-compatibility -emit-llvm -o - %s \
 // RUN:     | FileCheck %s -check-prefix CHECK-MSVC
-// RUN: %clang_cc1 -triple armv7-eabi -emit-llvm %s -o - \
+// RUN: %clang_cc1 -Wno-implicit-function-declaration -triple armv7-eabi -emit-llvm %s -o - \
 // RUN:     | FileCheck %s -check-prefix CHECK-EABI
 // REQUIRES: arm-registered-target
 

diff  --git a/clang/test/CodeGen/builtins-arm-msvc-compat-only.c b/clang/test/CodeGen/builtins-arm-msvc-compat-only.c
index db82ca4066521..42cc9d70a1427 100644
--- a/clang/test/CodeGen/builtins-arm-msvc-compat-only.c
+++ b/clang/test/CodeGen/builtins-arm-msvc-compat-only.c
@@ -1,6 +1,6 @@
 // RUN: %clang_cc1 -triple thumbv7-windows -fms-extensions -emit-llvm -o - %s \
 // RUN:     | FileCheck %s -check-prefix CHECK-MSVC
-// RUN: %clang_cc1 -triple armv7-eabi -emit-llvm %s -o /dev/null 2>&1 \
+// RUN: not %clang_cc1 -triple armv7-eabi -emit-llvm %s -o /dev/null 2>&1 \
 // RUN:     | FileCheck %s -check-prefix CHECK-EABI
 // REQUIRES: arm-registered-target
 
@@ -9,7 +9,7 @@ void emit() {
 }
 
 // CHECK-MSVC: call void asm sideeffect ".inst.n 0xDEFE", ""()
-// CHECK-EABI: warning: implicit declaration of function '__emit' is invalid in C99
+// CHECK-EABI: error: call to undeclared function '__emit'
 
 void emit_truncated() {
   __emit(0x11110000); // movs r0, r0

diff  --git a/clang/test/CodeGen/builtins-x86.c b/clang/test/CodeGen/builtins-x86.c
index fea5ff2d69c41..e0f220dbeafcc 100644
--- a/clang/test/CodeGen/builtins-x86.c
+++ b/clang/test/CodeGen/builtins-x86.c
@@ -1,5 +1,5 @@
-// RUN: %clang_cc1 -DUSE_64 -triple x86_64-unknown-unknown -target-feature +fxsr -target-feature +avx -target-feature +xsaveopt -target-feature +xsaves -target-feature +xsavec -target-feature +mwaitx -target-feature +clzero -target-feature +shstk -target-feature +wbnoinvd -target-feature +cldemote -emit-llvm -o %t %s
-// RUN: %clang_cc1 -DUSE_ALL -triple x86_64-unknown-unknown -target-feature +fxsr -target-feature +avx -target-feature +xsaveopt -target-feature +xsaves -target-feature +xsavec -target-feature +mwaitx -target-feature +shstk -target-feature +clzero -target-feature +wbnoinvd -target-feature +cldemote -fsyntax-only -o %t %s
+// RUN: %clang_cc1 -DUSE_64 -triple x86_64-unknown-unknown -target-feature +fxsr -target-feature +avx -target-feature +xsaveopt -target-feature +xsaves -target-feature +xsavec -target-feature +mwaitx -target-feature +clzero -target-feature +shstk -target-feature +wbnoinvd -target-feature +cldemote -Wno-implicit-function-declaration -emit-llvm -o %t %s
+// RUN: %clang_cc1 -DUSE_ALL -triple x86_64-unknown-unknown -target-feature +fxsr -target-feature +avx -target-feature +xsaveopt -target-feature +xsaves -target-feature +xsavec -target-feature +mwaitx -target-feature +shstk -target-feature +clzero -target-feature +wbnoinvd -target-feature +cldemote -Wno-implicit-function-declaration -fsyntax-only -o %t %s
 // RUN: %clang_cc1 -DUSE_64 -DOPENCL -x cl -cl-std=CL2.0 -triple x86_64-unknown-unknown -target-feature +fxsr -target-feature +avx -target-feature +xsaveopt -target-feature +xsaves -target-feature +xsavec -target-feature +mwaitx -target-feature +clzero -target-feature +shstk -target-feature +wbnoinvd -target-feature +cldemote -emit-llvm -o %t %s
 
 #ifdef USE_ALL

diff  --git a/clang/test/CodeGen/builtins.c b/clang/test/CodeGen/builtins.c
index 63eb41e3c4962..eb522db917ae7 100644
--- a/clang/test/CodeGen/builtins.c
+++ b/clang/test/CodeGen/builtins.c
@@ -15,6 +15,7 @@ void r(char *str, void *ptr) {
 }
 
 int random(void);
+int finite(double);
 
 int main(void) {
   int N = random();
@@ -25,11 +26,11 @@ int main(void) {
   P(types_compatible_p, (int, float));
   P(choose_expr, (0, 10, 20));
   P(constant_p, (sizeof(10)));
-  P(expect, (N == 12, 0)); 
+  P(expect, (N == 12, 0));
   V(prefetch, (&N));
   V(prefetch, (&N, 1));
   V(prefetch, (&N, 1, 0));
-  
+
   // Numeric Constants
 
   Q(huge_val, ());
@@ -100,7 +101,7 @@ int main(void) {
   V(strncpy, (s0, s1, n));
   V(sprintf, (s0, "%s", s1));
   V(snprintf, (s0, n, "%s", s1));
-  
+
   // Object size checking
   V(__memset_chk, (s0, 0, sizeof s0, n));
   V(__memcpy_chk, (s0, s1, sizeof s0, n));

diff  --git a/clang/test/CodeGen/cast-emit.c b/clang/test/CodeGen/cast-emit.c
index 4e33fa32f7881..eeef40418330f 100644
--- a/clang/test/CodeGen/cast-emit.c
+++ b/clang/test/CodeGen/cast-emit.c
@@ -1,5 +1,6 @@
 // RUN: %clang_cc1 -emit-llvm %s -o - | FileCheck %s
 
+extern int f();
 typedef union {
   int    i;
   float  f;

diff  --git a/clang/test/CodeGen/complex-libcalls-2.c b/clang/test/CodeGen/complex-libcalls-2.c
index 1938cf460c91b..8867eb8ff6e7a 100644
--- a/clang/test/CodeGen/complex-libcalls-2.c
+++ b/clang/test/CodeGen/complex-libcalls-2.c
@@ -1,6 +1,10 @@
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -w -S -o - -emit-llvm              %s | FileCheck %s
 // RUN: %clang_cc1 -triple x86_64-unknown-unknown -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s
 
+_Complex float conjf(_Complex float);
+_Complex double conj(_Complex double);
+_Complex long double conjl(_Complex long double);
+
 float _Complex test_conjf(float _Complex x) {
 // CHECK-LABEL: @test_conjf(
 // CHECK: fneg float %x.imag

diff  --git a/clang/test/CodeGen/complex-libcalls.c b/clang/test/CodeGen/complex-libcalls.c
index 109b02de18f8a..3ddc1cac0eb9c 100644
--- a/clang/test/CodeGen/complex-libcalls.c
+++ b/clang/test/CodeGen/complex-libcalls.c
@@ -1,7 +1,7 @@
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown -w -S -o - -emit-llvm              %s | FileCheck %s -check-prefix=NO__ERRNO
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s -check-prefix=HAS_ERRNO
+// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown -Wno-implicit-function-declaration -w -S -o - -emit-llvm              %s | FileCheck %s -check-prefix=NO__ERRNO
+// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown -Wno-implicit-function-declaration -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s -check-prefix=HAS_ERRNO
 
-// Test attributes and builtin codegen of complex library calls. 
+// Test attributes and builtin codegen of complex library calls.
 
 void foo(float f) {
   cabs(f);       cabsf(f);      cabsl(f);
@@ -49,7 +49,7 @@ void foo(float f) {
 // HAS_ERRNO: declare <2 x float> @casinf(<2 x float> noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare { x86_fp80, x86_fp80 } @casinl({ x86_fp80, x86_fp80 }* noundef byval({ x86_fp80, x86_fp80 }) align 16) [[NOT_READNONE]]
 
-  casinh(f);     casinhf(f);    casinhl(f); 
+  casinh(f);     casinhf(f);    casinhl(f);
 
 // NO__ERRNO: declare { double, double } @casinh(double noundef, double noundef) [[READNONE]]
 // NO__ERRNO: declare <2 x float> @casinhf(<2 x float> noundef) [[READNONE]]
@@ -58,7 +58,7 @@ void foo(float f) {
 // HAS_ERRNO: declare <2 x float> @casinhf(<2 x float> noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare { x86_fp80, x86_fp80 } @casinhl({ x86_fp80, x86_fp80 }* noundef byval({ x86_fp80, x86_fp80 }) align 16) [[NOT_READNONE]]
 
-  catan(f);      catanf(f);     catanl(f); 
+  catan(f);      catanf(f);     catanl(f);
 
 // NO__ERRNO: declare { double, double } @catan(double noundef, double noundef) [[READNONE]]
 // NO__ERRNO: declare <2 x float> @catanf(<2 x float> noundef) [[READNONE]]
@@ -126,7 +126,7 @@ void foo(float f) {
 // HAS_ERRNO: declare <2 x float> @clogf(<2 x float> noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare { x86_fp80, x86_fp80 } @clogl({ x86_fp80, x86_fp80 }* noundef byval({ x86_fp80, x86_fp80 }) align 16) [[NOT_READNONE]]
 
-  cproj(f);      cprojf(f);     cprojl(f); 
+  cproj(f);      cprojf(f);     cprojl(f);
 
 // NO__ERRNO: declare { double, double } @cproj(double noundef, double noundef) [[READNONE]]
 // NO__ERRNO: declare <2 x float> @cprojf(<2 x float> noundef) [[READNONE]]
@@ -169,7 +169,7 @@ void foo(float f) {
 // HAS_ERRNO: declare <2 x float> @csinhf(<2 x float> noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare { x86_fp80, x86_fp80 } @csinhl({ x86_fp80, x86_fp80 }* noundef byval({ x86_fp80, x86_fp80 }) align 16) [[NOT_READNONE]]
 
-  csqrt(f);      csqrtf(f);     csqrtl(f);  
+  csqrt(f);      csqrtf(f);     csqrtl(f);
 
 // NO__ERRNO: declare { double, double } @csqrt(double noundef, double noundef) [[READNONE]]
 // NO__ERRNO: declare <2 x float> @csqrtf(<2 x float> noundef) [[READNONE]]
@@ -187,7 +187,7 @@ void foo(float f) {
 // HAS_ERRNO: declare <2 x float> @ctanf(<2 x float> noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare { x86_fp80, x86_fp80 } @ctanl({ x86_fp80, x86_fp80 }* noundef byval({ x86_fp80, x86_fp80 }) align 16) [[NOT_READNONE]]
 
-  ctanh(f);      ctanhf(f);     ctanhl(f); 
+  ctanh(f);      ctanhf(f);     ctanhl(f);
 
 // NO__ERRNO: declare { double, double } @ctanh(double noundef, double noundef) [[READNONE]]
 // NO__ERRNO: declare <2 x float> @ctanhf(<2 x float> noundef) [[READNONE]]

diff  --git a/clang/test/CodeGen/conditional.c b/clang/test/CodeGen/conditional.c
index 6f235e8a24727..464341250edf1 100644
--- a/clang/test/CodeGen/conditional.c
+++ b/clang/test/CodeGen/conditional.c
@@ -31,6 +31,7 @@ void* test8(void) {return 1 ? test6 : test7;}
 
 
 void _efree(void *ptr);
+void free(void *ptr);
 
 void _php_stream_free3(void) {
   (1 ? free(0) : _efree(0));

diff  --git a/clang/test/CodeGen/debug-info-block-vars.c b/clang/test/CodeGen/debug-info-block-vars.c
index fe219c9ad4c6a..dc522a807951e 100644
--- a/clang/test/CodeGen/debug-info-block-vars.c
+++ b/clang/test/CodeGen/debug-info-block-vars.c
@@ -1,6 +1,6 @@
-// RUN: %clang_cc1 -no-opaque-pointers -x c -fblocks -debug-info-kind=standalone -emit-llvm -O0 \
+// RUN: %clang_cc1 -no-opaque-pointers -x c -std=c89 -fblocks -debug-info-kind=standalone -emit-llvm -O0 \
 // RUN:   -triple x86_64-apple-darwin -o - %s | FileCheck %s
-// RUN: %clang_cc1 -no-opaque-pointers -x c -fblocks -debug-info-kind=standalone -emit-llvm -O1 \
+// RUN: %clang_cc1 -no-opaque-pointers -x c -std=c89 -fblocks -debug-info-kind=standalone -emit-llvm -O1 \
 // RUN:   -triple x86_64-apple-darwin -o - %s \
 // RUN:   | FileCheck --check-prefix=CHECK-OPT %s
 

diff  --git a/clang/test/CodeGen/debug-info-crash.c b/clang/test/CodeGen/debug-info-crash.c
index 3160018dfccff..80fe881e97f02 100644
--- a/clang/test/CodeGen/debug-info-crash.c
+++ b/clang/test/CodeGen/debug-info-crash.c
@@ -1,5 +1,5 @@
 // REQUIRES: x86-registered-target
-// RUN: %clang_cc1 -triple i386-apple-darwin10 -fblocks -debug-info-kind=limited -S %s -o -
+// RUN: %clang_cc1 -std=c89 -triple i386-apple-darwin10 -fblocks -debug-info-kind=limited -S %s -o -
 
 // rdar://7590323
 typedef struct dispatch_queue_s *dispatch_queue_t;

diff  --git a/clang/test/CodeGen/decl.c b/clang/test/CodeGen/decl.c
index b6594dd2bc997..a79f4674d106e 100644
--- a/clang/test/CodeGen/decl.c
+++ b/clang/test/CodeGen/decl.c
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -no-opaque-pointers -w -fmerge-all-constants -emit-llvm < %s | FileCheck %s
+// RUN: %clang_cc1 -no-opaque-pointers -std=c89 -w -fmerge-all-constants -emit-llvm < %s | FileCheck %s
 
 // CHECK: @test1.x = internal constant [12 x i32] [i32 1
 // CHECK: @__const.test2.x = private unnamed_addr constant [13 x i32] [i32 1,

diff  --git a/clang/test/CodeGen/init-with-member-expr.c b/clang/test/CodeGen/init-with-member-expr.c
index fdc8c149e5222..b3e7c1bde02a4 100644
--- a/clang/test/CodeGen/init-with-member-expr.c
+++ b/clang/test/CodeGen/init-with-member-expr.c
@@ -12,6 +12,7 @@ int *b=&t.a;
 typedef struct mark_header_tag {
  unsigned char mark[7];
 } mark_header_t;
+extern int foo();
 int is_rar_archive(int fd) {
         const mark_header_t rar_hdr[2] = {{0x52, 0x61, 0x72, 0x21, 0x1a, 0x07, 0x00}, {'U', 'n', 'i', 'q', 'u', 'E', '!'}};
         foo(rar_hdr);

diff  --git a/clang/test/CodeGen/libcalls.c b/clang/test/CodeGen/libcalls.c
index 968847478eb27..d21d403ed4ab4 100644
--- a/clang/test/CodeGen/libcalls.c
+++ b/clang/test/CodeGen/libcalls.c
@@ -1,6 +1,6 @@
-// RUN: %clang_cc1 -fmath-errno -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s
-// RUN: %clang_cc1 -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-NO %s
-// RUN: %clang_cc1 -menable-unsafe-fp-math -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-FAST %s
+// RUN: %clang_cc1 -Wno-implicit-function-declaration -fmath-errno -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-YES %s
+// RUN: %clang_cc1 -Wno-implicit-function-declaration -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-NO %s
+// RUN: %clang_cc1 -Wno-implicit-function-declaration -menable-unsafe-fp-math -emit-llvm -o - %s -triple i386-unknown-unknown | FileCheck -check-prefix CHECK-FAST %s
 
 // CHECK-YES-LABEL: define{{.*}} void @test_sqrt
 // CHECK-NO-LABEL: define{{.*}} void @test_sqrt

diff  --git a/clang/test/CodeGen/mandel.c b/clang/test/CodeGen/mandel.c
index 5fd3013c57c0b..bb62885eaaca9 100644
--- a/clang/test/CodeGen/mandel.c
+++ b/clang/test/CodeGen/mandel.c
@@ -26,6 +26,7 @@ int main(void) { return 0; }
 #define I 1.0iF
 
 int putchar(char c);
+double hypot(double, double);
 
 volatile double __complex__ accum;
 

diff  --git a/clang/test/CodeGen/math-libcalls.c b/clang/test/CodeGen/math-libcalls.c
index 94e1da79650f8..bf259d7e783be 100644
--- a/clang/test/CodeGen/math-libcalls.c
+++ b/clang/test/CodeGen/math-libcalls.c
@@ -1,7 +1,7 @@
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown     -w -S -o - -emit-llvm              %s | FileCheck %s --check-prefix=NO__ERRNO
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown     -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s --check-prefix=HAS_ERRNO
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown-gnu -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s --check-prefix=HAS_ERRNO_GNU
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-windows-msvc -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s --check-prefix=HAS_ERRNO_WIN
+// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown -Wno-implicit-function-declaration -w -S -o - -emit-llvm              %s | FileCheck %s --check-prefix=NO__ERRNO
+// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown -Wno-implicit-function-declaration -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s --check-prefix=HAS_ERRNO
+// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-unknown-gnu -Wno-implicit-function-declaration -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s --check-prefix=HAS_ERRNO_GNU
+// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-unknown-windows-msvc -Wno-implicit-function-declaration -w -S -o - -emit-llvm -fmath-errno %s | FileCheck %s --check-prefix=HAS_ERRNO_WIN
 
 // Test attributes and builtin codegen of math library calls.
 
@@ -51,7 +51,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @frexpf(float noundef, i32* noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @frexpl(x86_fp80 noundef, i32* noundef) [[NOT_READNONE]]
 
-  ldexp(f,f);    ldexpf(f,f);   ldexpl(f,f);  
+  ldexp(f,f);    ldexpf(f,f);   ldexpl(f,f);
 
 // NO__ERRNO: declare double @ldexp(double noundef, i32 noundef) [[READNONE]]
 // NO__ERRNO: declare float @ldexpf(float noundef, i32 noundef) [[READNONE]]
@@ -60,7 +60,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @ldexpf(float noundef, i32 noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @ldexpl(x86_fp80 noundef, i32 noundef) [[NOT_READNONE]]
 
-  modf(f,d);       modff(f,fp);      modfl(f,l); 
+  modf(f,d);       modff(f,fp);      modfl(f,l);
 
 // NO__ERRNO: declare double @modf(double noundef, double* noundef) [[NOT_READNONE]]
 // NO__ERRNO: declare float @modff(float noundef, float* noundef) [[NOT_READNONE]]
@@ -69,7 +69,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @modff(float noundef, float* noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @modfl(x86_fp80 noundef, x86_fp80* noundef) [[NOT_READNONE]]
 
-  nan(c);        nanf(c);       nanl(c);  
+  nan(c);        nanf(c);       nanl(c);
 
 // NO__ERRNO: declare double @nan(i8* noundef) [[READONLY:#[0-9]+]]
 // NO__ERRNO: declare float @nanf(i8* noundef) [[READONLY]]
@@ -97,7 +97,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @acosf(float noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @acosl(x86_fp80 noundef) [[NOT_READNONE]]
 
-  acosh(f);      acoshf(f);     acoshl(f);  
+  acosh(f);      acoshf(f);     acoshl(f);
 
 // NO__ERRNO: declare double @acosh(double noundef) [[READNONE]]
 // NO__ERRNO: declare float @acoshf(float noundef) [[READNONE]]
@@ -106,7 +106,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @acoshf(float noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @acoshl(x86_fp80 noundef) [[NOT_READNONE]]
 
-  asin(f);       asinf(f);      asinl(f); 
+  asin(f);       asinf(f);      asinl(f);
 
 // NO__ERRNO: declare double @asin(double noundef) [[READNONE]]
 // NO__ERRNO: declare float @asinf(float noundef) [[READNONE]]
@@ -133,7 +133,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @atanf(float noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @atanl(x86_fp80 noundef) [[NOT_READNONE]]
 
-  atanh(f);      atanhf(f);     atanhl(f); 
+  atanh(f);      atanhf(f);     atanhl(f);
 
 // NO__ERRNO: declare double @atanh(double noundef) [[READNONE]]
 // NO__ERRNO: declare float @atanhf(float noundef) [[READNONE]]
@@ -160,7 +160,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @llvm.ceil.f32(float) [[READNONE_INTRINSIC]]
 // HAS_ERRNO: declare x86_fp80 @llvm.ceil.f80(x86_fp80) [[READNONE_INTRINSIC]]
 
-  cos(f);        cosf(f);       cosl(f); 
+  cos(f);        cosf(f);       cosl(f);
 
 // NO__ERRNO: declare double @llvm.cos.f64(double) [[READNONE_INTRINSIC]]
 // NO__ERRNO: declare float @llvm.cos.f32(float) [[READNONE_INTRINSIC]]
@@ -205,7 +205,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @expf(float noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @expl(x86_fp80 noundef) [[NOT_READNONE]]
 
-  exp2(f);       exp2f(f);      exp2l(f); 
+  exp2(f);       exp2f(f);      exp2l(f);
 
 // NO__ERRNO: declare double @llvm.exp2.f64(double) [[READNONE_INTRINSIC]]
 // NO__ERRNO: declare float @llvm.exp2.f32(float) [[READNONE_INTRINSIC]]
@@ -288,7 +288,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @hypotf(float noundef, float noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @hypotl(x86_fp80 noundef, x86_fp80 noundef) [[NOT_READNONE]]
 
-  ilogb(f);      ilogbf(f);     ilogbl(f); 
+  ilogb(f);      ilogbf(f);     ilogbl(f);
 
 // NO__ERRNO: declare i32 @ilogb(double noundef) [[READNONE]]
 // NO__ERRNO: declare i32 @ilogbf(float noundef) [[READNONE]]
@@ -486,7 +486,7 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) {
 // HAS_ERRNO: declare float @sinhf(float noundef) [[NOT_READNONE]]
 // HAS_ERRNO: declare x86_fp80 @sinhl(x86_fp80 noundef) [[NOT_READNONE]]
 
-  sqrt(f);       sqrtf(f);      sqrtl(f); 
+  sqrt(f);       sqrtf(f);      sqrtl(f);
 
 // NO__ERRNO: declare double @llvm.sqrt.f64(double) [[READNONE_INTRINSIC]]
 // NO__ERRNO: declare float @llvm.sqrt.f32(float) [[READNONE_INTRINSIC]]

diff  --git a/clang/test/CodeGen/misaligned-param.c b/clang/test/CodeGen/misaligned-param.c
index 53f1f290f5c2c..57b8e5ace2e84 100644
--- a/clang/test/CodeGen/misaligned-param.c
+++ b/clang/test/CodeGen/misaligned-param.c
@@ -1,7 +1,8 @@
-// RUN: %clang_cc1 %s -triple i386-apple-darwin -emit-llvm -o - | FileCheck %s
+// RUN: %clang_cc1 %s -std=c89 -triple i386-apple-darwin -emit-llvm -o - | FileCheck %s
 // Misaligned parameter must be memcpy'd to correctly aligned temporary.
 
 struct s { int x; long double y; };
+int bar(struct s *, struct s *);
 long double foo(struct s x, int i, struct s y) {
 // CHECK: foo
 // CHECK: %x = alloca %struct.s, align 16

diff  --git a/clang/test/CodeGen/ms-intrinsics-other.c b/clang/test/CodeGen/ms-intrinsics-other.c
index 0e75fac3ee5d2..ceeb7ece4f71c 100644
--- a/clang/test/CodeGen/ms-intrinsics-other.c
+++ b/clang/test/CodeGen/ms-intrinsics-other.c
@@ -1,16 +1,16 @@
-// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions \
+// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions -Wno-implicit-function-declaration \
 // RUN:         -triple x86_64--darwin -Oz -emit-llvm %s -o - \
 // RUN:         | FileCheck %s
-// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions \
+// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions -Wno-implicit-function-declaration \
 // RUN:         -triple x86_64--linux -Oz -emit-llvm %s -o - \
 // RUN:         | FileCheck %s
-// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions \
+// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions -Wno-implicit-function-declaration \
 // RUN:         -triple aarch64--darwin -Oz -emit-llvm %s -o - \
 // RUN:         | FileCheck %s --check-prefix=CHECK-ARM-ARM64
-// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions \
+// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions -Wno-implicit-function-declaration \
 // RUN:         -triple aarch64--darwin -Oz -emit-llvm %s -o - \
 // RUN:         | FileCheck %s --check-prefix=CHECK-ARM
-// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions \
+// RUN: %clang_cc1 -no-opaque-pointers -ffreestanding -fms-extensions -Wno-implicit-function-declaration \
 // RUN:         -triple armv7--darwin -Oz -emit-llvm %s -o - \
 // RUN:         | FileCheck %s --check-prefix=CHECK-ARM
 

diff  --git a/clang/test/CodeGen/ms-setjmp.c b/clang/test/CodeGen/ms-setjmp.c
index c155a05290a8a..07639457fcc21 100644
--- a/clang/test/CodeGen/ms-setjmp.c
+++ b/clang/test/CodeGen/ms-setjmp.c
@@ -1,9 +1,9 @@
 // RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -DDECLARE_SETJMP -triple i686-windows-msvc   -emit-llvm %s -o - | FileCheck --check-prefix=I386 %s
 // RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -DDECLARE_SETJMP -triple x86_64-windows-msvc -emit-llvm %s -o - | FileCheck --check-prefix=X64 %s
 // RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -DDECLARE_SETJMP -triple aarch64-windows-msvc -emit-llvm %s -o - | FileCheck --check-prefix=AARCH64 %s
-// RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -triple i686-windows-msvc   -emit-llvm %s -o - | FileCheck --check-prefix=I386 %s
-// RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -triple x86_64-windows-msvc -emit-llvm %s -o - | FileCheck --check-prefix=X64 %s
-// RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -triple aarch64-windows-msvc -emit-llvm %s -o - | FileCheck --check-prefix=AARCH64 %s
+// RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -triple i686-windows-msvc -Wno-implicit-function-declaration -emit-llvm %s -o - | FileCheck --check-prefix=I386 %s
+// RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -triple x86_64-windows-msvc -Wno-implicit-function-declaration -emit-llvm %s -o - | FileCheck --check-prefix=X64 %s
+// RUN: %clang_cc1 -no-opaque-pointers -fms-extensions -triple aarch64-windows-msvc -Wno-implicit-function-declaration -emit-llvm %s -o - | FileCheck --check-prefix=AARCH64 %s
 typedef char jmp_buf[1];
 
 #ifdef DECLARE_SETJMP

diff  --git a/clang/test/CodeGen/neon-crypto.c b/clang/test/CodeGen/neon-crypto.c
index 7a3ef773af36e..9168865744161 100644
--- a/clang/test/CodeGen/neon-crypto.c
+++ b/clang/test/CodeGen/neon-crypto.c
@@ -14,7 +14,7 @@
 
 uint8x16_t test_vaeseq_u8(uint8x16_t data, uint8x16_t key) {
   // CHECK-LABEL: @test_vaeseq_u8
-  // CHECK-NO-CRYPTO: warning: implicit declaration of function 'vaeseq_u8' is invalid in C99
+  // CHECK-NO-CRYPTO: error: call to undeclared function 'vaeseq_u8'
   return vaeseq_u8(data, key);
   // CHECK: call <16 x i8> @llvm.{{arm.neon|aarch64.crypto}}.aese(<16 x i8> %data, <16 x i8> %key)
 }

diff  --git a/clang/test/CodeGen/shared-string-literals.c b/clang/test/CodeGen/shared-string-literals.c
index 0b589a772454d..555cfc87cab7b 100644
--- a/clang/test/CodeGen/shared-string-literals.c
+++ b/clang/test/CodeGen/shared-string-literals.c
@@ -4,6 +4,7 @@ char *globalString = "abc";
 char *globalStringArray[5] = { "123", "abc" };
 char *anotherGlobalString = "123";
 
+int printf(const char *, ...);
 int main(void) {
     printf("123");
 }

diff  --git a/clang/test/CodeGen/struct-comma.c b/clang/test/CodeGen/struct-comma.c
index e5b51514384ab..4c1f35a7803bc 100644
--- a/clang/test/CodeGen/struct-comma.c
+++ b/clang/test/CodeGen/struct-comma.c
@@ -1,4 +1,5 @@
 // RUN: %clang_cc1 %s -emit-llvm -o -
 
 struct S {int a, b;} x;
+extern int r(void);
 void a(struct S* b) {*b = (r(), x);}

diff  --git a/clang/test/CodeGen/variable-array.c b/clang/test/CodeGen/variable-array.c
index d0787d3dca02d..c2a7c2ffb93f4 100644
--- a/clang/test/CodeGen/variable-array.c
+++ b/clang/test/CodeGen/variable-array.c
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -emit-llvm < %s | grep puts | count 4
 
+int puts(const char *);
+
 // PR3248
 int a(int x)
 {

diff  --git a/clang/test/CodeGen/writable-strings.c b/clang/test/CodeGen/writable-strings.c
index 92d971fd412b2..89d012bcae72c 100644
--- a/clang/test/CodeGen/writable-strings.c
+++ b/clang/test/CodeGen/writable-strings.c
@@ -1,5 +1,6 @@
 // RUN: %clang_cc1 -emit-llvm -o - -fwritable-strings %s
 
+int printf(const char *, ...);
 int main(void) {
     char *str = "abc";
     str[0] = '1';

diff  --git a/clang/test/CodeGenObjC/builtins.m b/clang/test/CodeGenObjC/builtins.m
index 86d19fac79d8c..131e94b23fea5 100644
--- a/clang/test/CodeGenObjC/builtins.m
+++ b/clang/test/CodeGenObjC/builtins.m
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin10 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o - %s | FileCheck %s
 
+id objc_msgSend(id, SEL, ...);
+
 void test0(id receiver, SEL sel, const char *str) {
   short s = ((short (*)(id, SEL, const char*)) objc_msgSend)(receiver, sel, str);
 }

diff  --git a/clang/test/CodeGenObjC/implicit-objc_msgSend.m b/clang/test/CodeGenObjC/implicit-objc_msgSend.m
index a24b8aeb1ef8e..2c56108903b44 100644
--- a/clang/test/CodeGenObjC/implicit-objc_msgSend.m
+++ b/clang/test/CodeGenObjC/implicit-objc_msgSend.m
@@ -1,4 +1,4 @@
-// RUN: %clang_cc1 -no-opaque-pointers -triple x86_64-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o %t %s
+// RUN: %clang_cc1 -no-opaque-pointers -Wno-implicit-function-declaration -triple x86_64-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o %t %s
 // RUN: grep -F 'declare i8* @objc_msgSend(i8* noundef, i8* noundef, ...)' %t
 
 typedef struct objc_selector *SEL;

diff  --git a/clang/test/CodeGenObjC/property-complex.m b/clang/test/CodeGenObjC/property-complex.m
index 027f6d6326863..658803deb4fb9 100644
--- a/clang/test/CodeGenObjC/property-complex.m
+++ b/clang/test/CodeGenObjC/property-complex.m
@@ -1,6 +1,8 @@
 // RUN: %clang_cc1 -triple i386-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o %t %s
 // RUN: %clang_cc1 -triple x86_64-apple-darwin9 -fobjc-runtime=macosx-fragile-10.5 -emit-llvm -o %t %s
 
+int printf(const char *, ...);
+
 @interface I0 {
 @public
   _Complex float iv0;

diff  --git a/clang/test/Driver/implicit-function-as-error.c b/clang/test/Driver/implicit-function-as-error.c
index 9c45e2021245f..a7f815c8ed69b 100644
--- a/clang/test/Driver/implicit-function-as-error.c
+++ b/clang/test/Driver/implicit-function-as-error.c
@@ -6,6 +6,6 @@
 // to an error.
 
 void radar_10894044(void) {
-  printf("Hi\n"); // expected-error {{implicitly declaring library function 'printf' with type 'int (const char *, ...)'}} expected-note {{include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
-  radar_10894044_not_declared(); // expected-error {{implicit declaration of function 'radar_10894044_not_declared' is invalid in C99}}
+  printf("Hi\n"); // expected-error {{call to undeclared library function 'printf' with type 'int (const char *, ...)'}} expected-note {{include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
+  radar_10894044_not_declared(); // expected-error {{call to undeclared function 'radar_10894044_not_declared'; ISO C99 and later do not support implicit function declarations}}
 }

diff  --git a/clang/test/Frontend/warning-mapping-2.c b/clang/test/Frontend/warning-mapping-2.c
index d2a2a21f17111..a0bb18b1a935b 100644
--- a/clang/test/Frontend/warning-mapping-2.c
+++ b/clang/test/Frontend/warning-mapping-2.c
@@ -1,5 +1,5 @@
 // Check that -w takes precedence over -pedantic-errors.
-// RUN: %clang_cc1 -verify -pedantic-errors -w %s
+// RUN: %clang_cc1 -verify -std=c89 -pedantic-errors -w %s
 
 // Expect *not* to see a diagnostic for "implicit declaration of function"
 // expected-no-diagnostics

diff  --git a/clang/test/Headers/arm-cmse-header-ns.c b/clang/test/Headers/arm-cmse-header-ns.c
index a6e63ef841499..dfbef2c002917 100644
--- a/clang/test/Headers/arm-cmse-header-ns.c
+++ b/clang/test/Headers/arm-cmse-header-ns.c
@@ -1,4 +1,4 @@
-// RUN:     %clang_cc1 -triple thumbv8m.base-eabi -fsyntax-only        %s 2>&1 | FileCheck --check-prefix=CHECK-c %s
+// RUN: not %clang_cc1 -triple thumbv8m.base-eabi -fsyntax-only %s 2>&1 | FileCheck --check-prefix=CHECK-c %s
 // RUN: not %clang_cc1 -triple thumbv8m.base-eabi -fsyntax-only -x c++ %s 2>&1 | FileCheck --check-prefix=CHECK-cpp %s
 
 #include <arm_cmse.h>
@@ -16,10 +16,10 @@ void func(callback_t fptr, void *p)
   cmse_TTAT(p);
   cmse_TTA_fptr(fptr);
   cmse_TTAT_fptr(fptr);
-// CHECK-c: warning: implicit declaration of function 'cmse_TTA'
-// CHECK-c: warning: implicit declaration of function 'cmse_TTAT'
-// CHECK-c: warning: implicit declaration of function 'cmse_TTA_fptr'
-// CHECK-c: warning: implicit declaration of function 'cmse_TTAT_fptr'
+// CHECK-c: error: call to undeclared function 'cmse_TTA'
+// CHECK-c: error: call to undeclared function 'cmse_TTAT'
+// CHECK-c: error: call to undeclared function 'cmse_TTA_fptr'
+// CHECK-c: error: call to undeclared function 'cmse_TTAT_fptr'
 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTA'
 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTAT'
 // CHECK-cpp: error: use of undeclared identifier 'cmse_TTA_fptr'

diff  --git a/clang/test/Headers/hexagon-audio-headers.c b/clang/test/Headers/hexagon-audio-headers.c
index d7ebda3fbc44e..34aa8fa4cb457 100644
--- a/clang/test/Headers/hexagon-audio-headers.c
+++ b/clang/test/Headers/hexagon-audio-headers.c
@@ -25,12 +25,12 @@ void test_audio() {
   unsigned long long c;
 
   // CHECK-ERR-CXX: error: use of undeclared identifier 'Q6_R_clip_RI'
-  // CHECK-ERR-C99: error: implicit declaration of function 'Q6_R_clip_RI' is invalid in C99
+  // CHECK-ERR-C99: error: call to undeclared function 'Q6_R_clip_RI'
   // CHECK: call i32 @llvm.hexagon.A7.clip
   b = Q6_R_clip_RI(b, 9);
 
   // CHECK-ERR-CXX: error: use of undeclared identifier 'Q6_P_cround_PI'
-  // CHECK-ERR-C99: error: implicit declaration of function 'Q6_P_cround_PI' is invalid in C99
+  // CHECK-ERR-C99: error: call to undeclared function 'Q6_P_cround_PI'
   // CHECK: call i64 @llvm.hexagon.A7.cround
   c = Q6_P_cround_PI(c, 12);
 }

diff  --git a/clang/test/Import/objc-arc/test-cleanup-object.m b/clang/test/Import/objc-arc/test-cleanup-object.m
index 00fe9713b0cef..32ec2956d4592 100644
--- a/clang/test/Import/objc-arc/test-cleanup-object.m
+++ b/clang/test/Import/objc-arc/test-cleanup-object.m
@@ -5,6 +5,7 @@
 // CHECK: ExprWithCleanups
 // CHECK-NEXT: cleanup CompoundLiteralExpr
 
+extern int getObj();
 void test(int c, id a) {
   (void)getObj(c, a);
 }

diff  --git a/clang/test/Modules/config_macros.m b/clang/test/Modules/config_macros.m
index 94f9e602d2c5b..d0d0bfeaef859 100644
--- a/clang/test/Modules/config_macros.m
+++ b/clang/test/Modules/config_macros.m
@@ -5,7 +5,7 @@
 }
 
 char *test_bar(void) {
-  return bar(); // expected-warning{{implicit declaration of function 'bar' is invalid in C99}} \
+  return bar(); // expected-error{{call to undeclared function 'bar'; ISO C99 and later do not support implicit function declarations}} \
                 // expected-warning{{incompatible integer to pointer conversion}}
 }
 
@@ -23,6 +23,6 @@
 @import config; // expected-warning{{definition of configuration macro 'WANT_BAR' has no effect on the import of 'config'; pass '-DWANT_BAR=...' on the command line to configure the module}}
 
 // RUN: rm -rf %t
-// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -DWANT_FOO=1 -emit-module -fmodule-name=config %S/Inputs/module.map
-// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -DWANT_FOO=1 %s -verify
+// RUN: %clang_cc1 -std=c99 -fmodules -fimplicit-module-maps -x objective-c -fmodules-cache-path=%t -DWANT_FOO=1 -emit-module -fmodule-name=config %S/Inputs/module.map
+// RUN: %clang_cc1 -std=c99 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t -I %S/Inputs -DWANT_FOO=1 %s -verify
 

diff  --git a/clang/test/Modules/diagnose-missing-import.m b/clang/test/Modules/diagnose-missing-import.m
index 56fe0eae5f11b..8fb8e6b25f68a 100644
--- a/clang/test/Modules/diagnose-missing-import.m
+++ b/clang/test/Modules/diagnose-missing-import.m
@@ -5,7 +5,10 @@
 @import NCI;
 
 void foo(void) {
-  XYZLogEvent(xyzRiskyCloseOpenParam, xyzRiskyCloseOpenParam); // expected-error {{implicit declaration of function 'XYZLogEvent'}} expected-error {{declaration of 'XYZLogEvent' must be imported}} expected-error {{declaration of 'xyzRiskyCloseOpenParam' must be imported from module 'NCI.A'}} expected-error {{declaration of 'xyzRiskyCloseOpenParam' must be imported from module 'NCI.A'}}
+  XYZLogEvent(xyzRiskyCloseOpenParam, xyzRiskyCloseOpenParam); // expected-error {{call to undeclared function 'XYZLogEvent'; ISO C99 and later do not support implicit function declarations}} \
+                                                                  expected-error {{declaration of 'XYZLogEvent' must be imported}} \
+                                                                  expected-error {{declaration of 'xyzRiskyCloseOpenParam' must be imported from module 'NCI.A'}} \
+                                                                  expected-error {{declaration of 'xyzRiskyCloseOpenParam' must be imported from module 'NCI.A'}}
 }
 
 // expected-note at Inputs/diagnose-missing-import/a.h:5 {{declaration here is not visible}}

diff  --git a/clang/test/Modules/modulemap-locations.m b/clang/test/Modules/modulemap-locations.m
index 1d16853b7740f..e5738e105263a 100644
--- a/clang/test/Modules/modulemap-locations.m
+++ b/clang/test/Modules/modulemap-locations.m
@@ -12,7 +12,9 @@
 
 void test(void) {
   will_be_found1();
-  wont_be_found1(); // expected-warning{{implicit declaration of function 'wont_be_found1' is invalid in C99}}
+  wont_be_found1(); // expected-error{{call to undeclared function 'wont_be_found1'; ISO C99 and later do not support implicit function declarations}} \
+                       expected-note {{did you mean 'will_be_found1'?}} \
+                       expected-note at Inputs/ModuleMapLocations/Module_ModuleMap/a.h:1 {{'will_be_found1' declared here}}
   will_be_found2();
-  wont_be_found2(); // expected-warning{{implicit declaration of function 'wont_be_found2' is invalid in C99}}
+  wont_be_found2(); // expected-error{{call to undeclared function 'wont_be_found2'; ISO C99 and later do not support implicit function declarations}}
 }

diff  --git a/clang/test/OpenMP/declare_mapper_messages.c b/clang/test/OpenMP/declare_mapper_messages.c
index accb3d0dace11..ae95dc81caef6 100644
--- a/clang/test/OpenMP/declare_mapper_messages.c
+++ b/clang/test/OpenMP/declare_mapper_messages.c
@@ -42,9 +42,9 @@ int fun(int arg) {
       {}
 #pragma omp target map(mapper:vv)                                       // expected-error {{expected '(' after 'mapper'}}
       {}
-#pragma omp target map(mapper( :vv)                                     // expected-error {{expected expression}} expected-error {{expected ')'}} expected-warning {{implicit declaration of function 'mapper' is invalid in C99}} expected-note {{to match this '('}}
+#pragma omp target map(mapper( :vv)                                     // expected-error {{expected expression}} expected-error {{expected ')'}} expected-error {{call to undeclared function 'mapper'}} expected-note {{to match this '('}}
       {}
-#pragma omp target map(mapper(aa :vv)                                   // expected-error {{use of undeclared identifier 'aa'}} expected-error {{expected ')'}} expected-warning {{implicit declaration of function 'mapper' is invalid in C99}} expected-note {{to match this '('}}
+#pragma omp target map(mapper(aa :vv)                                   // expected-error {{use of undeclared identifier 'aa'}} expected-error {{expected ')'}} expected-error {{call to undeclared function 'mapper'}} expected-note {{to match this '('}}
       {}
 #pragma omp target map(mapper(ab) :vv)                                  // expected-error {{missing map type}} expected-error {{cannot find a valid user-defined mapper for type 'struct vec' with name 'ab'}}
       {}

diff  --git a/clang/test/PCH/chain-macro-override.c b/clang/test/PCH/chain-macro-override.c
index 38025e87a6a99..26abae1cb9d55 100644
--- a/clang/test/PCH/chain-macro-override.c
+++ b/clang/test/PCH/chain-macro-override.c
@@ -2,15 +2,15 @@
 // RUN: %clang_cc1 -include %S/Inputs/chain-macro-override1.h -include %S/Inputs/chain-macro-override2.h -fsyntax-only -verify -detailed-preprocessing-record %s
 
 // Test with pch.
-// RUN: %clang_cc1 -emit-pch -o %t1 %S/Inputs/chain-macro-override1.h -detailed-preprocessing-record 
-// RUN: %clang_cc1 -emit-pch -o %t2 %S/Inputs/chain-macro-override2.h -include-pch %t1 -detailed-preprocessing-record 
+// RUN: %clang_cc1 -emit-pch -o %t1 %S/Inputs/chain-macro-override1.h -detailed-preprocessing-record
+// RUN: %clang_cc1 -emit-pch -o %t2 %S/Inputs/chain-macro-override2.h -include-pch %t1 -detailed-preprocessing-record
 // RUN: %clang_cc1 -include-pch %t2 -fsyntax-only -verify %s
 
 int foo(void) {
   f();
   g();
   h();
-  h2(); // expected-warning{{implicit declaration of function 'h2' is invalid in C99}}
+  h2(); // expected-error {{call to undeclared function 'h2'; ISO C99 and later do not support implicit function declarations}}
   h3();
   return x;
 }

diff  --git a/clang/test/Rewriter/finally.m b/clang/test/Rewriter/finally.m
index 33b919e4b3efb..89ecfe0e2f642 100644
--- a/clang/test/Rewriter/finally.m
+++ b/clang/test/Rewriter/finally.m
@@ -1,9 +1,10 @@
 // RUN: %clang_cc1 -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 -fobjc-exceptions -verify %s -o -
 
+extern int printf(const char *, ...);
+
 int main(void) {
   @try {
-    printf("executing try"); // expected-warning{{implicitly declaring library function 'printf' with type 'int (const char *, ...)'}} \
-        // expected-note{{include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
+    printf("executing try");
     return(0); // expected-warning{{rewriter doesn't support user-specified control flow semantics for @try/@finally (code may not execute properly)}}
   } @finally {
     printf("executing finally");

diff  --git a/clang/test/Rewriter/rewrite-foreach-2.m b/clang/test/Rewriter/rewrite-foreach-2.m
index a0f7db301dd0a..c363681255a3f 100644
--- a/clang/test/Rewriter/rewrite-foreach-2.m
+++ b/clang/test/Rewriter/rewrite-foreach-2.m
@@ -25,7 +25,7 @@ - (void)compilerTestAgainst {
         for (el in self) 
 	  { LOOP(); 
             for (id el1 in self) 
-	       INNER_LOOP();
+	       INNERLOOP();
 
 	    END_LOOP();
 	  }

diff  --git a/clang/test/Rewriter/rewrite-try-catch.m b/clang/test/Rewriter/rewrite-try-catch.m
index 8ac87f59f2724..06b198cda7175 100644
--- a/clang/test/Rewriter/rewrite-try-catch.m
+++ b/clang/test/Rewriter/rewrite-try-catch.m
@@ -1,8 +1,13 @@
-// RUN: %clang_cc1 -rewrite-objc -fobjc-runtime=macosx-fragile-10.5  %s -o -
+// RUN: %clang_cc1 -rewrite-objc -fobjc-runtime=macosx-fragile-10.5 -std=c99 %s -o -
 
 @interface Foo @end
 @interface GARF @end
 
+void TRY(void);
+void SPLATCH(void);
+void MYTRY(void);
+void MYCATCH(void);
+
 void foo(void) {
   @try  { TRY(); } 
   @catch (...) { SPLATCH(); @throw; }

diff  --git a/clang/test/Sema/__try.c b/clang/test/Sema/__try.c
index e0d08fa8c19af..9bfd914c013c1 100644
--- a/clang/test/Sema/__try.c
+++ b/clang/test/Sema/__try.c
@@ -50,7 +50,7 @@ void TEST(void) {
 }  // expected-error{{expected '__except' or '__finally' block}}
 
 void TEST(void) {
-  __except (FilterExpression()) { // expected-warning{{implicit declaration of function '__except' is invalid in C99}} \
+  __except (FilterExpression()) { // expected-error{{call to undeclared function '__except'; ISO C99 and later do not support implicit function declarations}} \
     // expected-error{{too few arguments to function call, expected 1, have 0}} \
     // expected-error{{expected ';' after expression}}
   }

diff  --git a/clang/test/Sema/aarch64-tme-errors.c b/clang/test/Sema/aarch64-tme-errors.c
index e095550cedf5e..26e931b62bcb7 100644
--- a/clang/test/Sema/aarch64-tme-errors.c
+++ b/clang/test/Sema/aarch64-tme-errors.c
@@ -3,6 +3,6 @@
 #include "arm_acle.h"
 
 void test_no_tme_funcs(void) {
-  __tstart();         // expected-warning{{implicit declaration of function '__tstart'}}
+  __tstart();         // expected-error{{call to undeclared function '__tstart'; ISO C99 and later do not support implicit function declarations}}
   __builtin_tstart(); // expected-error{{use of unknown builtin '__builtin_tstart'}}
 }

diff  --git a/clang/test/Sema/arm-no-fp16.c b/clang/test/Sema/arm-no-fp16.c
index 311cce41bf426..8198f0a40a844 100644
--- a/clang/test/Sema/arm-no-fp16.c
+++ b/clang/test/Sema/arm-no-fp16.c
@@ -1,297 +1,297 @@
 // RUN: %clang_cc1 -triple thumbv7-none-eabi %s -target-feature +neon \
 // RUN:   -fallow-half-arguments-and-returns -target-feature -fp16 \
-// RUN:   -fsyntax-only -verify
+// RUN:   -fsyntax-only -verify -Wno-error=implicit-function-declaration
 
 // REQUIRES: aarch64-registered-target || arm-registered-target
 
 #include <arm_neon.h>
 
 float16x4_t test_vcvt_f16_f32(float32x4_t a) {
-  return vcvt_f16_f32(a); // expected-warning{{implicit declaration of function 'vcvt_f16_f32'}}  expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vcvt_f16_f32(a); // expected-warning{{call to undeclared function 'vcvt_f16_f32'}}  expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float32x4_t test_vcvt_f32_f16(float16x4_t a) {
-  return vcvt_f32_f16(a); // expected-warning{{implicit declaration of function 'vcvt_f32_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float32x4_t'}}
+  return vcvt_f32_f16(a); // expected-warning{{call to undeclared function 'vcvt_f32_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float32x4_t'}}
 }
 
 float16x4_t test_vrnda_f16(float16x4_t a) {
-  return vrnda_f16(a); // expected-warning{{implicit declaration of function 'vrnda_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrnda_f16(a); // expected-warning{{call to undeclared function 'vrnda_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndaq_f16(float16x8_t a) {
-  return vrndaq_f16(a); // expected-warning{{implicit declaration of function 'vrndaq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndaq_f16(a); // expected-warning{{call to undeclared function 'vrndaq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vrnd_f16(float16x4_t a) {
-  return vrnd_f16(a); // expected-warning{{implicit declaration of function 'vrnd_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrnd_f16(a); // expected-warning{{call to undeclared function 'vrnd_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndq_f16(float16x8_t a) {
-  return vrndq_f16(a); // expected-warning{{implicit declaration of function 'vrndq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndq_f16(a); // expected-warning{{call to undeclared function 'vrndq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vrndi_f16(float16x4_t a) {
-  return vrndi_f16(a); // expected-warning{{implicit declaration of function 'vrndi_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrndi_f16(a); // expected-warning{{call to undeclared function 'vrndi_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndiq_f16(float16x8_t a) {
-  return vrndiq_f16(a); // expected-warning{{implicit declaration of function 'vrndiq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndiq_f16(a); // expected-warning{{call to undeclared function 'vrndiq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vrndm_f16(float16x4_t a) {
-  return vrndm_f16(a); // expected-warning{{implicit declaration of function 'vrndm_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrndm_f16(a); // expected-warning{{call to undeclared function 'vrndm_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndmq_f16(float16x8_t a) {
-  return vrndmq_f16(a); // expected-warning{{implicit declaration of function 'vrndmq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndmq_f16(a); // expected-warning{{call to undeclared function 'vrndmq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vrndn_f16(float16x4_t a) {
-  return vrndn_f16(a); // expected-warning{{implicit declaration of function 'vrndn_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrndn_f16(a); // expected-warning{{call to undeclared function 'vrndn_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndnq_f16(float16x8_t a) {
-  return vrndnq_f16(a); // expected-warning{{implicit declaration of function 'vrndnq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndnq_f16(a); // expected-warning{{call to undeclared function 'vrndnq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vrndp_f16(float16x4_t a) {
-  return vrndp_f16(a); // expected-warning{{implicit declaration of function 'vrndp_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrndp_f16(a); // expected-warning{{call to undeclared function 'vrndp_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndpq_f16(float16x8_t a) {
-  return vrndpq_f16(a); // expected-warning{{implicit declaration of function 'vrndpq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndpq_f16(a); // expected-warning{{call to undeclared function 'vrndpq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vrndx_f16(float16x4_t a) {
-  return vrndx_f16(a); // expected-warning{{implicit declaration of function 'vrndx_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vrndx_f16(a); // expected-warning{{call to undeclared function 'vrndx_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vrndxq_f16(float16x8_t a) {
-  return vrndxq_f16(a); // expected-warning{{implicit declaration of function 'vrndxq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vrndxq_f16(a); // expected-warning{{call to undeclared function 'vrndxq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vmaxnm_f16(float16x4_t a, float16x4_t b) {
-  return vmaxnm_f16(a, b); // expected-warning{{implicit declaration of function 'vmaxnm_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vmaxnm_f16(a, b); // expected-warning{{call to undeclared function 'vmaxnm_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vmaxnmq_f16(float16x8_t a, float16x8_t b) {
-  return vmaxnmq_f16(a, b); // expected-warning{{implicit declaration of function 'vmaxnmq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vmaxnmq_f16(a, b); // expected-warning{{call to undeclared function 'vmaxnmq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vminnm_f16(float16x4_t a, float16x4_t b) {
-  return vminnm_f16(a, b); // expected-warning{{implicit declaration of function 'vminnm_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vminnm_f16(a, b); // expected-warning{{call to undeclared function 'vminnm_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vminnmq_f16(float16x8_t a, float16x8_t b) {
-  return vminnmq_f16(a, b); // expected-warning{{implicit declaration of function 'vminnmq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vminnmq_f16(a, b); // expected-warning{{call to undeclared function 'vminnmq_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vld1_f16(const float16_t *a) {
-  return vld1_f16(a); // expected-warning{{implicit declaration of function 'vld1_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vld1_f16(a); // expected-warning{{call to undeclared function 'vld1_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vld1q_f16(const float16_t *a) {
-  return vld1q_f16(a); // expected-warning{{implicit declaration of function 'vld1q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vld1q_f16(a); // expected-warning{{call to undeclared function 'vld1q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vld1_dup_f16(const float16_t *a) {
-  return vld1_dup_f16(a); // expected-warning{{implicit declaration of function 'vld1_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vld1_dup_f16(a); // expected-warning{{call to undeclared function 'vld1_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vld1q_dup_f16(const float16_t *a) {
-  return vld1q_dup_f16(a); // expected-warning{{implicit declaration of function 'vld1q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vld1q_dup_f16(a); // expected-warning{{call to undeclared function 'vld1q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4_t test_vld1_lane_f16(const float16_t *a, float16x4_t b) {
-  return vld1_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vld1_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
+  return vld1_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vld1_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4_t'}}
 }
 
 float16x8_t test_vld1q_lane_f16(const float16_t *a, float16x8_t b) {
-  return vld1q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vld1q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
+  return vld1q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vld1q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8_t'}}
 }
 
 float16x4x2_t test_vld1_f16_x2(const float16_t *a) {
-  return vld1_f16_x2(a); // expected-warning{{implicit declaration of function 'vld1_f16_x2'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
+  return vld1_f16_x2(a); // expected-warning{{call to undeclared function 'vld1_f16_x2'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
 }
 
 float16x8x2_t test_vld1q_f16_x2(const float16_t *a) {
-  return vld1q_f16_x2(a); // expected-warning{{implicit declaration of function 'vld1q_f16_x2'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
+  return vld1q_f16_x2(a); // expected-warning{{call to undeclared function 'vld1q_f16_x2'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
 }
 
 float16x4x3_t test_vld1_f16_x3(const float16_t *a) {
-  return vld1_f16_x3(a); // expected-warning{{implicit declaration of function 'vld1_f16_x3'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
+  return vld1_f16_x3(a); // expected-warning{{call to undeclared function 'vld1_f16_x3'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
 }
 
 float16x8x3_t test_vld1q_f16_x3(const float16_t *a) {
-  return vld1q_f16_x3(a); // expected-warning{{implicit declaration of function 'vld1q_f16_x3'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
+  return vld1q_f16_x3(a); // expected-warning{{call to undeclared function 'vld1q_f16_x3'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
 }
 
 float16x4x4_t test_vld1_f16_x4(const float16_t *a) {
-  return vld1_f16_x4(a); // expected-warning{{implicit declaration of function 'vld1_f16_x4'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
+  return vld1_f16_x4(a); // expected-warning{{call to undeclared function 'vld1_f16_x4'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
 }
 
 float16x8x4_t test_vld1q_f16_x4(const float16_t *a) {
-  return vld1q_f16_x4(a); // expected-warning{{implicit declaration of function 'vld1q_f16_x4'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
+  return vld1q_f16_x4(a); // expected-warning{{call to undeclared function 'vld1q_f16_x4'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
 }
 
 float16x4x2_t test_vld2_f16(const float16_t *a) {
-  return vld2_f16(a); // expected-warning{{implicit declaration of function 'vld2_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
+  return vld2_f16(a); // expected-warning{{call to undeclared function 'vld2_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
 }
 
 float16x8x2_t test_vld2q_f16(const float16_t *a) {
-  return vld2q_f16(a); // expected-warning{{implicit declaration of function 'vld2q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
+  return vld2q_f16(a); // expected-warning{{call to undeclared function 'vld2q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
 }
 
 float16x4x2_t test_vld2_lane_f16(const float16_t *a, float16x4x2_t b) {
-  return vld2_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vld2_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
+  return vld2_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vld2_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
 }
 
 float16x8x2_t test_vld2q_lane_f16(const float16_t *a, float16x8x2_t b) {
-  return vld2q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vld2q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
+  return vld2q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vld2q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
 }
 
 float16x4x2_t test_vld2_dup_f16(const float16_t *src) {
-  return vld2_dup_f16(src); // expected-warning{{implicit declaration of function 'vld2_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
+  return vld2_dup_f16(src); // expected-warning{{call to undeclared function 'vld2_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x2_t'}}
 }
 
 float16x8x2_t test_vld2q_dup_f16(const float16_t *src) {
-  return vld2q_dup_f16(src); // expected-warning{{implicit declaration of function 'vld2q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
+  return vld2q_dup_f16(src); // expected-warning{{call to undeclared function 'vld2q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x2_t'}}
 }
 
 float16x4x3_t test_vld3_f16(const float16_t *a) {
-  return vld3_f16(a); // expected-warning{{implicit declaration of function 'vld3_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
+  return vld3_f16(a); // expected-warning{{call to undeclared function 'vld3_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
 }
 
 float16x8x3_t test_vld3q_f16(const float16_t *a) {
-  return vld3q_f16(a); // expected-warning{{implicit declaration of function 'vld3q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
+  return vld3q_f16(a); // expected-warning{{call to undeclared function 'vld3q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
 }
 
 float16x4x3_t test_vld3_lane_f16(const float16_t *a, float16x4x3_t b) {
-  return vld3_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vld3_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
+  return vld3_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vld3_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
 }
 
 float16x8x3_t test_vld3q_lane_f16(const float16_t *a, float16x8x3_t b) {
-  return vld3q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vld3q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
+  return vld3q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vld3q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
 }
 
 float16x4x3_t test_vld3_dup_f16(const float16_t *src) {
-  return vld3_dup_f16(src); // expected-warning{{implicit declaration of function 'vld3_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
+  return vld3_dup_f16(src); // expected-warning{{call to undeclared function 'vld3_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x3_t'}}
 }
 
 float16x8x3_t test_vld3q_dup_f16(const float16_t *src) {
-  return vld3q_dup_f16(src); // expected-warning{{implicit declaration of function 'vld3q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
+  return vld3q_dup_f16(src); // expected-warning{{call to undeclared function 'vld3q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x3_t'}}
 }
 
 float16x4x4_t test_vld4_f16(const float16_t *a) {
-  return vld4_f16(a); // expected-warning{{implicit declaration of function 'vld4_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
+  return vld4_f16(a); // expected-warning{{call to undeclared function 'vld4_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
 }
 
 float16x8x4_t test_vld4q_f16(const float16_t *a) {
-  return vld4q_f16(a); // expected-warning{{implicit declaration of function 'vld4q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
+  return vld4q_f16(a); // expected-warning{{call to undeclared function 'vld4q_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
 }
 
 float16x4x4_t test_vld4_lane_f16(const float16_t *a, float16x4x4_t b) {
-  return vld4_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vld4_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
+  return vld4_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vld4_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
 }
 
 float16x8x4_t test_vld4q_lane_f16(const float16_t *a, float16x8x4_t b) {
-  return vld4q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vld4q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
+  return vld4q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vld4q_lane_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
 }
 
 float16x4x4_t test_vld4_dup_f16(const float16_t *src) {
-  return vld4_dup_f16(src); // expected-warning{{implicit declaration of function 'vld4_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
+  return vld4_dup_f16(src); // expected-warning{{call to undeclared function 'vld4_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x4x4_t'}}
 }
 
 float16x8x4_t test_vld4q_dup_f16(const float16_t *src) {
-  return vld4q_dup_f16(src); // expected-warning{{implicit declaration of function 'vld4q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
+  return vld4q_dup_f16(src); // expected-warning{{call to undeclared function 'vld4q_dup_f16'}} expected-error{{returning 'int' from a function with incompatible result type 'float16x8x4_t'}}
 }
 
 void test_vst1_f16(float16_t *a, float16x4_t b) {
-  vst1_f16(a, b); // expected-warning{{implicit declaration of function 'vst1_f16'}}
+  vst1_f16(a, b); // expected-warning{{call to undeclared function 'vst1_f16'}}
 }
 
 // aarch64-neon-intrinsics.c:void test_vst1q_f16(float16_t *a, float16x8_t b) {
 void test_vst1q_f16(float16_t *a, float16x8_t b) {
-  vst1q_f16(a, b); // expected-warning{{implicit declaration of function 'vst1q_f16'}}
+  vst1q_f16(a, b); // expected-warning{{call to undeclared function 'vst1q_f16'}}
 }
 
 // aarch64-neon-ldst-one.c:void test_vst1_lane_f16(float16_t  *a, float16x4_t b) {
 void test_vst1_lane_f16(float16_t *a, float16x4_t b) {
-  vst1_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vst1_lane_f16'}}
+  vst1_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vst1_lane_f16'}}
 }
 
 void test_vst1q_lane_f16(float16_t *a, float16x8_t b) {
-  vst1q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vst1q_lane_f16'}}
+  vst1q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vst1q_lane_f16'}}
 }
 
 void test_vst1_f16_x2(float16_t *a, float16x4x2_t b) {
-  vst1_f16_x2(a, b); // expected-warning{{implicit declaration of function 'vst1_f16_x2'}}
+  vst1_f16_x2(a, b); // expected-warning{{call to undeclared function 'vst1_f16_x2'}}
 }
 
 void test_vst1q_f16_x2(float16_t *a, float16x8x2_t b) {
-  vst1q_f16_x2(a, b); // expected-warning{{implicit declaration of function 'vst1q_f16_x2'}}
+  vst1q_f16_x2(a, b); // expected-warning{{call to undeclared function 'vst1q_f16_x2'}}
 }
 
 void test_vst1_f16_x3(float16_t *a, float16x4x3_t b) {
-  vst1_f16_x3(a, b); // expected-warning{{implicit declaration of function 'vst1_f16_x3'}}
+  vst1_f16_x3(a, b); // expected-warning{{call to undeclared function 'vst1_f16_x3'}}
 }
 
 void test_vst1q_f16_x3(float16_t *a, float16x8x3_t b) {
-  vst1q_f16_x3(a, b); // expected-warning{{implicit declaration of function 'vst1q_f16_x3'}}
+  vst1q_f16_x3(a, b); // expected-warning{{call to undeclared function 'vst1q_f16_x3'}}
 }
 
 void test_vst1_f16_x4(float16_t *a, float16x4x4_t b) {
-  vst1_f16_x4(a, b); // expected-warning{{implicit declaration of function 'vst1_f16_x4'}}
+  vst1_f16_x4(a, b); // expected-warning{{call to undeclared function 'vst1_f16_x4'}}
 }
 
 void test_vst1q_f16_x4(float16_t *a, float16x8x4_t b) {
-  vst1q_f16_x4(a, b); // expected-warning{{implicit declaration of function 'vst1q_f16_x4'}}
+  vst1q_f16_x4(a, b); // expected-warning{{call to undeclared function 'vst1q_f16_x4'}}
 }
 
 void test_vst2_f16(float16_t *a, float16x4x2_t b) {
-  vst2_f16(a, b); // expected-warning{{implicit declaration of function 'vst2_f16'}}
+  vst2_f16(a, b); // expected-warning{{call to undeclared function 'vst2_f16'}}
 }
 
 void test_vst2q_f16(float16_t *a, float16x8x2_t b) {
-  vst2q_f16(a, b); // expected-warning{{implicit declaration of function 'vst2q_f16'}}
+  vst2q_f16(a, b); // expected-warning{{call to undeclared function 'vst2q_f16'}}
 }
 
 void test_vst2_lane_f16(float16_t *a, float16x4x2_t b) {
-  vst2_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vst2_lane_f16'}}
+  vst2_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vst2_lane_f16'}}
 }
 
 void test_vst2q_lane_f16(float16_t *a, float16x8x2_t b) {
-  vst2q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vst2q_lane_f16'}}
+  vst2q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vst2q_lane_f16'}}
 }
 
 void test_vst3_f16(float16_t *a, float16x4x3_t b) {
-  vst3_f16(a, b); // expected-warning{{implicit declaration of function 'vst3_f16'}}
+  vst3_f16(a, b); // expected-warning{{call to undeclared function 'vst3_f16'}}
 }
 
 void test_vst3q_f16(float16_t *a, float16x8x3_t b) {
-  vst3q_f16(a, b); // expected-warning{{implicit declaration of function 'vst3q_f16'}}
+  vst3q_f16(a, b); // expected-warning{{call to undeclared function 'vst3q_f16'}}
 }
 
 void test_vst3_lane_f16(float16_t *a, float16x4x3_t b) {
-  vst3_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vst3_lane_f16'}}
+  vst3_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vst3_lane_f16'}}
 }
 
 void test_vst3q_lane_f16(float16_t *a, float16x8x3_t b) {
-  vst3q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vst3q_lane_f16'}}
+  vst3q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vst3q_lane_f16'}}
 }
 
 void test_vst4_f16(float16_t *a, float16x4x4_t b) {
-  vst4_f16(a, b); // expected-warning{{implicit declaration of function 'vst4_f16'}}
+  vst4_f16(a, b); // expected-warning{{call to undeclared function 'vst4_f16'}}
 }
 
 void test_vst4q_f16(float16_t *a, float16x8x4_t b) {
-  vst4q_f16(a, b); // expected-warning{{implicit declaration of function 'vst4q_f16'}}
+  vst4q_f16(a, b); // expected-warning{{call to undeclared function 'vst4q_f16'}}
 }
 
 void test_vst4_lane_f16(float16_t *a, float16x4x4_t b) {
-  vst4_lane_f16(a, b, 3); // expected-warning{{implicit declaration of function 'vst4_lane_f16'}}
+  vst4_lane_f16(a, b, 3); // expected-warning{{call to undeclared function 'vst4_lane_f16'}}
 }
 
 void test_vst4q_lane_f16(float16_t *a, float16x8x4_t b) {
-  vst4q_lane_f16(a, b, 7); // expected-warning{{implicit declaration of function 'vst4q_lane_f16'}}
+  vst4q_lane_f16(a, b, 7); // expected-warning{{call to undeclared function 'vst4q_lane_f16'}}
 }

diff  --git a/clang/test/Sema/bitfield.c b/clang/test/Sema/bitfield.c
index 13b6c3e152d72..468fe93485cc0 100644
--- a/clang/test/Sema/bitfield.c
+++ b/clang/test/Sema/bitfield.c
@@ -9,7 +9,7 @@ struct a {
   int b : 33; // expected-error{{width of bit-field 'b' (33 bits) exceeds the width of its type (32 bits)}}
 
   int c : (1 + 0.25); // expected-error{{integer constant expression must have integer type}}
-  int d : (int)(1 + 0.25); 
+  int d : (int)(1 + 0.25);
 
   // rdar://6138816
   int e : 0;  // expected-error {{bit-field 'e' has zero width}}
@@ -18,10 +18,10 @@ struct a {
 
   // PR3607
   enum e0 f : 1; // expected-error {{field has incomplete type 'enum e0'}}
-  
+
   int g : (_Bool)1;
-  
-  // PR4017  
+
+  // PR4017
   char : 10;      // expected-error {{width of anonymous bit-field (10 bits) exceeds the width of its type (8 bits)}}
   unsigned : -2;  // expected-error {{anonymous bit-field has negative width (-2)}}
   float : 12;     // expected-error {{anonymous bit-field has non-integral type 'float'}}
@@ -84,5 +84,5 @@ struct Test6 {
 };
 
 struct PR36157 {
-  int n : 1 ? 1 : implicitly_declare_function(); // expected-warning {{invalid in C99}}
+  int n : 1 ? 1 : implicitly_declare_function(); // expected-error {{call to undeclared function 'implicitly_declare_function'; ISO C99 and later do not support implicit function declarations}}
 };

diff  --git a/clang/test/Sema/block-return.c b/clang/test/Sema/block-return.c
index a1aa63bd6bb46..3dcfe2dfea4ee 100644
--- a/clang/test/Sema/block-return.c
+++ b/clang/test/Sema/block-return.c
@@ -1,5 +1,7 @@
 // RUN: %clang_cc1 -Wno-int-to-pointer-cast -Wno-pointer-to-int-cast -pedantic -fsyntax-only %s -verify -fblocks
 
+extern int printf(const char *, ...);
+
 typedef void (^CL)(void);
 
 CL foo(void) {
@@ -62,9 +64,9 @@ typedef struct {
 
 int foo3(void) {
     CFBasicHashCallbacks cb;
-    
+
     Boolean (*value_equal)(uintptr_t, uintptr_t) = 0;
-            
+
     cb.isEqual = ^(const CFBasicHash *table, uintptr_t stack_value_or_key1, uintptr_t stack_value_or_key2, Boolean is_key) {
       return (Boolean)(uintptr_t)INVOKE_CALLBACK2(value_equal, (uintptr_t)stack_value_or_key1, (uintptr_t)stack_value_or_key2);
     };
@@ -73,16 +75,15 @@ int foo3(void) {
 static int funk(char *s) {
   if (^{} == ((void*)0))
     return 1;
-  else 
+  else
     return 0;
 }
 void next(void);
 void foo4(void) {
   int (^xx)(const char *s) = ^(char *s) { return 1; }; // expected-error {{incompatible block pointer types initializing 'int (^)(const char *)' with an expression of type 'int (^)(char *)'}}
   int (*yy)(const char *s) = funk; // expected-warning {{incompatible function pointer types initializing 'int (*)(const char *)' with an expression of type 'int (char *)'}}
-  
-  int (^nested)(char *s) = ^(char *str) { void (^nest)(void) = ^(void) { printf("%s\n", str); }; next(); return 1; }; // expected-warning{{implicitly declaring library function 'printf' with type 'int (const char *, ...)'}} \
-  // expected-note{{include the header <stdio.h> or explicitly provide a declaration for 'printf'}}
+
+  int (^nested)(char *s) = ^(char *str) { void (^nest)(void) = ^(void) { printf("%s\n", str); }; next(); return 1; };
 }
 
 typedef void (^bptr)(void);

diff  --git a/clang/test/Sema/builtin-setjmp.c b/clang/test/Sema/builtin-setjmp.c
index f8b480fbe1332..5092d1665c193 100644
--- a/clang/test/Sema/builtin-setjmp.c
+++ b/clang/test/Sema/builtin-setjmp.c
@@ -35,10 +35,10 @@ void use(void) {
   setjmp(0);
   #if NO_SETJMP
   // cxx-error at -2 {{undeclared identifier 'setjmp'}}
-  // c-warning at -3 {{implicit declaration of function 'setjmp' is invalid in C99}}
+  // c-error at -3 {{call to undeclared function 'setjmp'; ISO C99 and later do not support implicit function declarations}}
   #elif ONLY_JMP_BUF
   // cxx-error at -5 {{undeclared identifier 'setjmp'}}
-  // c-warning at -6 {{implicitly declaring library function 'setjmp' with type 'int (jmp_buf)' (aka 'int (int *)')}}
+  // c-error at -6 {{call to undeclared library function 'setjmp' with type 'int (jmp_buf)' (aka 'int (int *)'); ISO C99 and later do not support implicit function declarations}}
   // c-note at -7 {{include the header <setjmp.h> or explicitly provide a declaration for 'setjmp'}}
   #else
   // cxx-no-diagnostics

diff  --git a/clang/test/Sema/builtins.c b/clang/test/Sema/builtins.c
index e49ee90c8058e..63865062dad38 100644
--- a/clang/test/Sema/builtins.c
+++ b/clang/test/Sema/builtins.c
@@ -2,7 +2,7 @@
 // This test needs to set the target because it uses __builtin_ia32_vec_ext_v4si
 
 int test1(float a, int b) {
-  return __builtin_isless(a, b); // expected-note {{declared here}}
+  return __builtin_isless(a, b);
 }
 int test2(int a, int b) {
   return __builtin_islessequal(a, b);  // expected-error {{floating point type}}
@@ -97,8 +97,7 @@ void test12(void) {
 }
 
 void test_unknown_builtin(int a, int b) {
-  __builtin_isles(a, b); // expected-error{{use of unknown builtin}} \
-                         // expected-note{{did you mean '__builtin_isless'?}}
+  __builtin_isles(a, b); // expected-error{{use of unknown builtin}}
 }
 
 int test13(void) {
@@ -207,9 +206,9 @@ void test18(void) {
 }
 
 void no_ms_builtins(void) {
-  __assume(1); // expected-warning {{implicit declaration}}
-  __noop(1); // expected-warning {{implicit declaration}}
-  __debugbreak(); // expected-warning {{implicit declaration}}
+  __assume(1); // expected-error {{call to undeclared function '__assume'; ISO C99 and later do not support implicit function declarations}}
+  __noop(1); // expected-error {{call to undeclared function '__noop'; ISO C99 and later do not support implicit function declarations}}
+  __debugbreak(); // expected-error {{call to undeclared function '__debugbreak'; ISO C99 and later do not support implicit function declarations}}
 }
 
 void unavailable(void) {
@@ -234,7 +233,7 @@ void Test19(void)
 
         strlcat(buf, b, sizeof(b)); // expected-warning {{size argument in 'strlcat' call appears to be size of the source; expected the size of the destination}} \
                                     // expected-note {{change size argument to be the size of the destination}}
-				    
+
         __builtin___strlcat_chk(buf, b, sizeof(b), __builtin_object_size(buf, 0)); // expected-warning {{size argument in '__builtin___strlcat_chk' call appears to be size of the source; expected the size of the destination}} \
                                                                                    // expected-note {{change size argument to be the size of the destination}} \
 				                                                   // expected-warning {{'strlcat' will always overflow; destination buffer has size 20, but size argument is 40}}

diff  --git a/clang/test/Sema/cxx-as-c.c b/clang/test/Sema/cxx-as-c.c
index 41d7350d1f15e..a5d1a4944c956 100644
--- a/clang/test/Sema/cxx-as-c.c
+++ b/clang/test/Sema/cxx-as-c.c
@@ -2,7 +2,7 @@
 
 // PR36157
 struct Foo {
-  Foo(int n) : n_(n) {} // expected-error 1+{{}} expected-warning 1+{{}}
+  Foo(int n) : n_(n) {} // expected-error 1+{{}}
 private:
   int n;
 };

diff  --git a/clang/test/Sema/implicit-builtin-decl.c b/clang/test/Sema/implicit-builtin-decl.c
index 3a3b3ed7d47da..055ba7e70eb12 100644
--- a/clang/test/Sema/implicit-builtin-decl.c
+++ b/clang/test/Sema/implicit-builtin-decl.c
@@ -1,7 +1,7 @@
 // RUN: %clang_cc1 -fsyntax-only -Wno-strict-prototypes -verify %s
 
 void f() {
-  int *ptr = malloc(sizeof(int) * 10); // expected-warning{{implicitly declaring library function 'malloc' with type}} \
+  int *ptr = malloc(sizeof(int) * 10); // expected-error{{call to undeclared library function 'malloc' with type}} \
   // expected-note{{include the header <stdlib.h> or explicitly provide a declaration for 'malloc'}} \
   // expected-note{{'malloc' is a builtin with type 'void *}}
 }
@@ -24,7 +24,7 @@ void h() {
 
 void f2() {
   fprintf(0, "foo"); // expected-warning{{declaration of built-in function 'fprintf' requires inclusion of the header <stdio.h>}} \
-   expected-warning {{implicit declaration of function 'fprintf' is invalid in C99}}
+   expected-error {{call to undeclared function 'fprintf'; ISO C99 and later do not support implicit function declarations}}
 }
 
 // PR2892

diff  --git a/clang/test/Sema/implicit-decl.c b/clang/test/Sema/implicit-decl.c
index d60d4875d2248..351f70ea33665 100644
--- a/clang/test/Sema/implicit-decl.c
+++ b/clang/test/Sema/implicit-decl.c
@@ -1,24 +1,36 @@
-// RUN: %clang_cc1 %s -verify -fsyntax-only -Werror=implicit-function-declaration
+// RUN: %clang_cc1 %s -verify -fsyntax-only -Werror=implicit-function-declaration -std=c99
+// RUN: %clang_cc1 %s -verify -fsyntax-only -std=c11
+// RUN: %clang_cc1 %s -verify=c2x -fsyntax-only -std=c2x
 
 /// -Werror-implicit-function-declaration is a deprecated alias used by many projects.
 // RUN: %clang_cc1 %s -verify -fsyntax-only -Werror-implicit-function-declaration
 
+// c2x-note@*:* {{'__builtin_va_list' declared here}}
+
 typedef int int32_t;
 typedef unsigned char Boolean;
 
-extern int printf(__const char *__restrict __format, ...); // expected-note{{'printf' declared here}}
+extern int printf(__const char *__restrict __format, ...); // expected-note{{'printf' declared here}} \
+                                                              c2x-note {{'printf' declared here}}
 
 void func(void) {
    int32_t *vector[16];
    const char compDesc[16 + 1];
    int32_t compCount = 0;
-   if (_CFCalendarDecomposeAbsoluteTimeV(compDesc, vector, compCount)) { // expected-error {{implicit declaration of function '_CFCalendarDecomposeAbsoluteTimeV' is invalid in C99}} expected-note {{previous implicit declaration}}
+   if (_CFCalendarDecomposeAbsoluteTimeV(compDesc, vector, compCount)) { // expected-error {{call to undeclared function '_CFCalendarDecomposeAbsoluteTimeV'; ISO C99 and later do not support implicit function declarations}} \
+                                                                            expected-note {{previous implicit declaration}} \
+                                                                            c2x-error {{use of undeclared identifier '_CFCalendarDecomposeAbsoluteTimeV'}}
    }
 
-   printg("Hello, World!\n"); // expected-error{{implicit declaration of function 'printg' is invalid in C99}} \
-                              // expected-note{{did you mean 'printf'?}}
+   printg("Hello, World!\n"); // expected-error{{call to undeclared function 'printg'; ISO C99 and later do not support implicit function declarations}} \
+                                 expected-note{{did you mean 'printf'?}} \
+                                 c2x-error {{use of undeclared identifier 'printg'; did you mean 'printf'?}}
 
-  __builtin_is_les(1, 3); // expected-error{{use of unknown builtin '__builtin_is_les'}}
+  __builtin_is_les(1, 3); // expected-error{{use of unknown builtin '__builtin_is_les'}} \
+                             c2x-error {{unknown type name '__builtin_is_les'; did you mean '__builtin_va_list'?}} \
+                             c2x-error {{expected identifier or '('}} \
+                             c2x-error {{expected ')'}} \
+                             c2x-note {{to match this '('}}
 }
 Boolean _CFCalendarDecomposeAbsoluteTimeV(const char *componentDesc, int32_t **vector, int32_t count) { // expected-error {{conflicting types}}
  return 0;
@@ -28,7 +40,16 @@ Boolean _CFCalendarDecomposeAbsoluteTimeV(const char *componentDesc, int32_t **v
 // Test the typo-correction callback in Sema::ImplicitlyDefineFunction
 extern int sformatf(char *str, __const char *__restrict __format, ...); // expected-note{{'sformatf' declared here}}
 void test_implicit(void) {
-  int formats = 0;
-  formatd("Hello, World!\n"); // expected-error{{implicit declaration of function 'formatd' is invalid in C99}} \
-                              // expected-note{{did you mean 'sformatf'?}}
+  int formats = 0; // c2x-note {{'formats' declared here}}
+  formatd("Hello, World!\n"); // expected-error{{call to undeclared function 'formatd'; ISO C99 and later do not support implicit function declarations}} \
+                                 expected-note{{did you mean 'sformatf'?}} \
+                                 c2x-error {{use of undeclared identifier 'formatd'; did you mean 'formats'?}} \
+                                 c2x-error {{called object type 'int' is not a function or function pointer}}
+}
+
+void test_suggestion(void) {
+  bark(); // expected-error {{call to undeclared function 'bark'; ISO C99 and later do not support implicit function declarations}} \
+             c2x-error {{use of undeclared identifier 'bark'}}
+  bork(); // expected-error {{call to undeclared function 'bork'; ISO C99 and later do not support implicit function declarations}} \
+             c2x-error {{use of undeclared identifier 'bork'}}
 }

diff  --git a/clang/test/Sema/implicit-intel-builtin-decl.c b/clang/test/Sema/implicit-intel-builtin-decl.c
index c9299eedbb36c..e7d17d9f19b9f 100644
--- a/clang/test/Sema/implicit-intel-builtin-decl.c
+++ b/clang/test/Sema/implicit-intel-builtin-decl.c
@@ -1,22 +1,29 @@
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -target-feature +sse2 -fsyntax-only -verify %s
-// RUN: %clang_cc1 -triple x86_64-unknown-unknown -target-feature +sse2 -fsyntax-only -verify %s -x c++
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -target-feature +sse2 -fsyntax-only -verify=expected,c %s
+// RUN: %clang_cc1 -triple x86_64-unknown-unknown -target-feature +sse2 -fsyntax-only -verify=expected,cxx %s -x c++
 
 void f(void) {
-  (void)_mm_getcsr(); // expected-warning{{implicitly declaring library function '_mm_getcsr'}} \
-  // expected-note{{include the header <xmmintrin.h> or explicitly provide a declaration for '_mm_getcsr'}}
-  _mm_setcsr(1); // expected-warning{{implicitly declaring library function '_mm_setcsr'}} \
-  // expected-note{{include the header <xmmintrin.h> or explicitly provide a declaration for '_mm_setcsr'}}
-  _mm_sfence(); // expected-warning{{implicitly declaring library function '_mm_sfence'}} \
-  // expected-note{{include the header <xmmintrin.h> or explicitly provide a declaration for '_mm_sfence'}}
+  (void)_mm_getcsr(); // cxx-warning{{implicitly declaring library function '_mm_getcsr'}} \
+                         c-error{{call to undeclared library function '_mm_getcsr'}} \
+                         expected-note{{include the header <xmmintrin.h> or explicitly provide a declaration for '_mm_getcsr'}}
+  _mm_setcsr(1); // cxx-warning{{implicitly declaring library function '_mm_setcsr'}} \
+                    c-error{{call to undeclared library function '_mm_setcsr'}} \
+                    expected-note{{include the header <xmmintrin.h> or explicitly provide a declaration for '_mm_setcsr'}}
+  _mm_sfence(); // cxx-warning{{implicitly declaring library function '_mm_sfence'}} \
+                   c-error{{call to undeclared library function '_mm_sfence'}} \
+                   expected-note{{include the header <xmmintrin.h> or explicitly provide a declaration for '_mm_sfence'}}
 
-  _mm_clflush((void*)0); // expected-warning{{implicitly declaring library function '_mm_clflush'}} \
-  // expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_clflush'}}
-  _mm_lfence(); // expected-warning{{implicitly declaring library function '_mm_lfence'}} \
-  // expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_lfence'}}
-  _mm_mfence(); // expected-warning{{implicitly declaring library function '_mm_mfence'}} \
-  // expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_mfence'}}
-  _mm_pause(); // expected-warning{{implicitly declaring library function '_mm_pause'}} \
-  // expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_pause'}}
+  _mm_clflush((void*)0); // cxx-warning{{implicitly declaring library function '_mm_clflush'}} \
+                            c-error{{call to undeclared library function '_mm_clflush'}} \
+                            expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_clflush'}}
+  _mm_lfence(); // cxx-warning{{implicitly declaring library function '_mm_lfence'}} \
+                   c-error{{call to undeclared library function '_mm_lfence'}} \
+                   expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_lfence'}}
+  _mm_mfence(); // cxx-warning{{implicitly declaring library function '_mm_mfence'}} \
+                   c-error{{call to undeclared library function '_mm_mfence'}} \
+                   expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_mfence'}}
+  _mm_pause(); // cxx-warning{{implicitly declaring library function '_mm_pause'}} \
+                  c-error{{call to undeclared library function '_mm_pause'}} \
+                  expected-note{{include the header <emmintrin.h> or explicitly provide a declaration for '_mm_pause'}}
 }
 
 unsigned int _mm_getcsr(void);

diff  --git a/clang/test/Sema/implicit-ms-builtin-decl.c b/clang/test/Sema/implicit-ms-builtin-decl.c
index 0a1d255bfb6ee..1294bb6aa9aab 100644
--- a/clang/test/Sema/implicit-ms-builtin-decl.c
+++ b/clang/test/Sema/implicit-ms-builtin-decl.c
@@ -2,9 +2,9 @@
 // RUN: %clang_cc1 -triple i386-unknown-unknown -fsyntax-only -verify %s -fms-extensions
 
 void f(void) {
-  (void)_byteswap_ushort(42); // expected-warning{{implicitly declaring library function '_byteswap_ushort'}} \
+  (void)_byteswap_ushort(42); // expected-error{{call to undeclared library function '_byteswap_ushort'}} \
   // expected-note{{include the header <stdlib.h> or explicitly provide a declaration for '_byteswap_ushort'}}
-  (void)_byteswap_uint64(42LL); // expected-warning{{implicitly declaring library function '_byteswap_uint64'}} \
+  (void)_byteswap_uint64(42LL); // expected-error{{call to undeclared library function '_byteswap_uint64'}} \
   // expected-note{{include the header <stdlib.h> or explicitly provide a declaration for '_byteswap_uint64'}}
 }
 
@@ -21,9 +21,9 @@ void g(void) {
 
 #if defined(__x86_64__)
 void h(void) {
-  (void)__mulh(21, 2);  // expected-warning{{implicitly declaring library function '__mulh'}} \
+  (void)__mulh(21, 2);  // expected-error{{call to undeclared library function '__mulh'}} \
   // expected-note{{include the header <intrin.h> or explicitly provide a declaration for '__mulh'}}
-  (void)__umulh(21, 2); // expected-warning{{implicitly declaring library function '__umulh'}} \
+  (void)__umulh(21, 2); // expected-error{{call to undeclared library function '__umulh'}} \
   // expected-note{{include the header <intrin.h> or explicitly provide a declaration for '__umulh'}}
 }
 
@@ -38,7 +38,7 @@ void i(void) {
 
 #if defined(i386)
 void h(void) {
-  (void)__mulh(21LL, 2LL);  // expected-warning{{implicit declaration of function '__mulh' is invalid}}
-  (void)__umulh(21ULL, 2ULL);  // expected-warning{{implicit declaration of function '__umulh' is invalid}}
+  (void)__mulh(21LL, 2LL);  // expected-error{{call to undeclared function '__mulh'; ISO C99 and later do not support implicit function declarations}}
+  (void)__umulh(21ULL, 2ULL);  // expected-error{{call to undeclared function '__umulh'; ISO C99 and later do not support implicit function declarations}}
 }
 #endif

diff  --git a/clang/test/Sema/typo-correction.c b/clang/test/Sema/typo-correction.c
index 3924744a8cb38..d69a2eb07da9e 100644
--- a/clang/test/Sema/typo-correction.c
+++ b/clang/test/Sema/typo-correction.c
@@ -37,7 +37,7 @@ int c11Generic(int arg) {
 
 typedef long long __m128i __attribute__((__vector_size__(16)));
 int PR23101(__m128i __x) {
-  return foo((__v2di)__x);  // expected-warning {{implicit declaration of function 'foo'}} \
+  return foo((__v2di)__x);  // expected-error {{call to undeclared function 'foo'; ISO C99 and later do not support implicit function declarations}} \
                             // expected-error {{use of undeclared identifier '__v2di'}}
 }
 

diff  --git a/clang/test/Sema/varargs.c b/clang/test/Sema/varargs.c
index fee323560623a..2cb7270f604a0 100644
--- a/clang/test/Sema/varargs.c
+++ b/clang/test/Sema/varargs.c
@@ -114,7 +114,7 @@ void f13(enum E1 e, ...) {
 }
 
 void f14(int e, ...) {
-  // expected-warning at +3 {{implicitly declaring library function 'va_start'}}
+  // expected-error at +3 {{call to undeclared library function 'va_start'}}
   // expected-note at +2 {{include the header <stdarg.h>}}
   // expected-error at +1 {{too few arguments to function call}}
   va_start();

diff  --git a/clang/test/Sema/vla.c b/clang/test/Sema/vla.c
index ba584da5bbc09..c6d61aac4515f 100644
--- a/clang/test/Sema/vla.c
+++ b/clang/test/Sema/vla.c
@@ -22,11 +22,11 @@ void f2(unsigned int m)
   extern int e1[2][m]; // expected-error {{variable length array declaration cannot have 'extern' linkage}}
 
   e1[0][0] = 0;
-  
+
 }
 
 // PR2361
-int i; 
+int i;
 int c[][i]; // expected-error {{variably modified type declaration not allowed at file scope}}
 int d[i]; // expected-error {{variable length array declaration not allowed at file scope}}
 
@@ -72,7 +72,7 @@ int TransformBug(int a) {
 // PR36157
 struct {
   int a[ // expected-error {{variable length array in struct}}
-    implicitly_declared() // expected-warning {{implicit declaration}}
+    implicitly_declared() // expected-error {{call to undeclared function 'implicitly_declared'; ISO C99 and later do not support implicit function declarations}}
   ];
 };
 int (*use_implicitly_declared)(void) = implicitly_declared; // ok, was implicitly declared at file scope

diff  --git a/clang/test/Sema/warn-strict-prototypes.c b/clang/test/Sema/warn-strict-prototypes.c
index e2cd4dcddc4c0..c4cdf8e5668b6 100644
--- a/clang/test/Sema/warn-strict-prototypes.c
+++ b/clang/test/Sema/warn-strict-prototypes.c
@@ -1,5 +1,5 @@
 // RUN: %clang_cc1 -triple i386-pc-unknown -fsyntax-only -Wstrict-prototypes -Wno-implicit-function-declaration -verify %s
-// RUN: %clang_cc1 -triple i386-pc-unknown -fsyntax-only -Wstrict-prototypes -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
+// RUN: %clang_cc1 -triple i386-pc-unknown -fsyntax-only -Wstrict-prototypes -Wno-implicit-function-declaration -fdiagnostics-parseable-fixits %s 2>&1 | FileCheck %s
 
 // function definition with 0 params, no prototype, no preceding declaration.
 void foo0() {} // expected-warning {{a function declaration without a prototype is deprecated in all versions of C}}

diff  --git a/clang/test/SemaObjC/at-defs.m b/clang/test/SemaObjC/at-defs.m
index 73316ca283c86..f02791bfa4da1 100644
--- a/clang/test/SemaObjC/at-defs.m
+++ b/clang/test/SemaObjC/at-defs.m
@@ -18,6 +18,8 @@ @implementation TestObject
   @defs(TestObject)
 };
 
+extern void *malloc(__typeof__(sizeof(0)));
+extern int printf(const char *, ...);
 
 int main(void)
 {

diff  --git a/clang/test/SemaObjC/builtin_objc_lib_functions.m b/clang/test/SemaObjC/builtin_objc_lib_functions.m
index a884038487ab1..211c472464608 100644
--- a/clang/test/SemaObjC/builtin_objc_lib_functions.m
+++ b/clang/test/SemaObjC/builtin_objc_lib_functions.m
@@ -1,29 +1,29 @@
 // RUN: %clang_cc1 -x objective-c %s -fsyntax-only -verify
 // rdar://8592641
-Class f0(void) { return objc_getClass("a"); } // expected-warning {{implicitly declaring library function 'objc_getClass' with type 'id (const char *)'}} \
+Class f0(void) { return objc_getClass("a"); } // expected-error {{call to undeclared library function 'objc_getClass' with type 'id (const char *)'}} \
 					  // expected-note {{include the header <objc/runtime.h> or explicitly provide a declaration for 'objc_getClass'}}
 
 // rdar://8735023
-Class f1(void) { return objc_getMetaClass("a"); } // expected-warning {{implicitly declaring library function 'objc_getMetaClass' with type 'id (const char *)'}} \
+Class f1(void) { return objc_getMetaClass("a"); } // expected-error {{call to undeclared library function 'objc_getMetaClass' with type 'id (const char *)'}} \
 					  // expected-note {{include the header <objc/runtime.h> or explicitly provide a declaration for 'objc_getMetaClass'}}
 
-void f2(id val) { objc_enumerationMutation(val); } // expected-warning {{implicitly declaring library function 'objc_enumerationMutation' with type 'void (id)'}} \
+void f2(id val) { objc_enumerationMutation(val); } // expected-error {{call to undeclared library function 'objc_enumerationMutation' with type 'void (id)'}} \
 						   // expected-note {{include the header <objc/runtime.h> or explicitly provide a declaration for 'objc_enumerationMutation'}}
 
-long double f3(id self, SEL op) { return objc_msgSend_fpret(self, op); } // expected-warning {{implicitly declaring library function 'objc_msgSend_fpret' with type 'long double (id, SEL, ...)'}} \
+long double f3(id self, SEL op) { return objc_msgSend_fpret(self, op); } // expected-error {{call to undeclared library function 'objc_msgSend_fpret' with type 'long double (id, SEL, ...)'}} \
     // expected-note {{include the header <objc/message.h> or explicitly provide a declaration for 'objc_msgSend_fpret'}}
 
 id f4(struct objc_super *super, SEL op) { // expected-warning {{declaration of 'struct objc_super' will not be visible outside of this function}}
-  return objc_msgSendSuper(super, op); // expected-warning {{implicitly declaring library function 'objc_msgSendSuper' with type 'id (struct objc_super *, SEL, ...)'}} \
+  return objc_msgSendSuper(super, op); // expected-error {{call to undeclared library function 'objc_msgSendSuper' with type 'id (struct objc_super *, SEL, ...)'}} \
 					// expected-note {{include the header <objc/message.h> or explicitly provide a declaration for 'objc_msgSendSuper'}}
 }
 
 id f5(id val, id *dest) {
-  return objc_assign_strongCast(val, dest); // expected-warning {{implicitly declaring library function 'objc_assign_strongCast' with type 'id (id, id *)'}} \
+  return objc_assign_strongCast(val, dest); // expected-error {{call to undeclared library function 'objc_assign_strongCast' with type 'id (id, id *)'}} \
 					    // expected-note {{include the header <objc/objc-auto.h> or explicitly provide a declaration for 'objc_assign_strongCast'}}
 }
 
 int f6(Class exceptionClass, id exception) {
-  return objc_exception_match(exceptionClass, exception); // expected-warning {{implicitly declaring library function 'objc_exception_match' with type 'int (id, id)'}} \
+  return objc_exception_match(exceptionClass, exception); // expected-error {{call to undeclared library function 'objc_exception_match' with type 'int (id, id)'}} \
   							  // expected-note {{include the header <objc/objc-exception.h> or explicitly provide a declaration for 'objc_exception_match'}}
 }

diff  --git a/clang/test/SemaObjC/builtin_objc_nslog.m b/clang/test/SemaObjC/builtin_objc_nslog.m
index cc6f194c898de..3c35a02d9b8a3 100644
--- a/clang/test/SemaObjC/builtin_objc_nslog.m
+++ b/clang/test/SemaObjC/builtin_objc_nslog.m
@@ -3,11 +3,11 @@
 #include <stdarg.h>
 
 void f1(id arg) {
-  NSLog(@"%@", arg); // expected-warning {{implicitly declaring library function 'NSLog' with type 'void (id, ...)'}} \
+  NSLog(@"%@", arg); // expected-error {{call to undeclared library function 'NSLog' with type 'void (id, ...)'}} \
   // expected-note {{include the header <Foundation/NSObjCRuntime.h> or explicitly provide a declaration for 'NSLog'}}
 }
 
 void f2(id str, va_list args) {
-  NSLogv(@"%@", args); // expected-warning {{implicitly declaring library function 'NSLogv' with type }} \
+  NSLogv(@"%@", args); // expected-error {{call to undeclared library function 'NSLogv' with type }} \
   // expected-note {{include the header <Foundation/NSObjCRuntime.h> or explicitly provide a declaration for 'NSLogv'}}
 }

diff  --git a/clang/test/SemaObjC/ivar-lookup-resolution-builtin.m b/clang/test/SemaObjC/ivar-lookup-resolution-builtin.m
index 94ed3256e8dff..b9da251dcd18c 100644
--- a/clang/test/SemaObjC/ivar-lookup-resolution-builtin.m
+++ b/clang/test/SemaObjC/ivar-lookup-resolution-builtin.m
@@ -28,7 +28,7 @@ + (int) ClassMethod;
 @implementation Test1
 - (int) InstMethod
 {
-  return index;	// expected-warning {{implicitly declaring library function 'index'}}	\
+  return index;	// expected-error {{call to undeclared library function 'index'}}	\
                 // expected-note {{include the header <strings.h> or explicitly provide a declaration for 'index'}} \
                 // expected-warning {{incompatible pointer to integer conversion returning}}
 }

diff  --git a/clang/test/SemaOpenCL/arm-integer-dot-product.cl b/clang/test/SemaOpenCL/arm-integer-dot-product.cl
index 5552f77779547..d61c6a1c506a4 100644
--- a/clang/test/SemaOpenCL/arm-integer-dot-product.cl
+++ b/clang/test/SemaOpenCL/arm-integer-dot-product.cl
@@ -9,11 +9,11 @@ void test_negative() {
     int sr;
     ur = arm_dot(ua8, ub8); // expected-error{{implicit declaration of function 'arm_dot' is invalid in OpenCL}}
     sr = arm_dot(sa8, sb8);
-    ur = arm_dot_acc(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc' is invalid in OpenCL}} //expected-note{{'arm_dot_acc' declared here}}
+    ur = arm_dot_acc(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc' is invalid in OpenCL}}
     sr = arm_dot_acc(sa8, sb8, sr);
     ur = arm_dot_acc(ua16, ub16, ur);
     sr = arm_dot_acc(sa16, sb16, sr);
-    ur = arm_dot_acc_sat(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc_sat' is invalid in OpenCL}} //expected-note{{did you mean 'arm_dot_acc'?}}
+    ur = arm_dot_acc_sat(ua8, ub8, ur); // expected-error{{implicit declaration of function 'arm_dot_acc_sat' is invalid in OpenCL}}
     sr = arm_dot_acc_sat(sa8, sb8, sr);
 }
 

diff  --git a/clang/test/SemaOpenCL/clang-builtin-version.cl b/clang/test/SemaOpenCL/clang-builtin-version.cl
index a3e5b5bd80fff..71c6da56f862d 100644
--- a/clang/test/SemaOpenCL/clang-builtin-version.cl
+++ b/clang/test/SemaOpenCL/clang-builtin-version.cl
@@ -26,47 +26,30 @@ void pipe_builtins(void) {
   int tmp;
 
   foo(void); // expected-error{{implicit declaration of function 'foo' is invalid in OpenCL}}
-  // expected-note at -1{{'foo' declared here}}
-  // expected-error at -2{{expected expression}}
+  // expected-error at -1{{expected expression}}
   boo(); // expected-error{{implicit declaration of function 'boo' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'foo'?}}
 
   read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'read_pipe' is invalid in OpenCL}}
   write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'write_pipe' is invalid in OpenCL}}
 
   reserve_read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'reserve_read_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{'reserve_read_pipe' declared here}}
   reserve_write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'reserve_write_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'reserve_read_pipe'?}}
 
   work_group_reserve_read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'work_group_reserve_read_pipe' is invalid in OpenCL}}
-  // expected-note at -1 2{{'work_group_reserve_read_pipe' declared here}}
   work_group_reserve_write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'work_group_reserve_write_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'work_group_reserve_read_pipe'?}}
-  // expected-note at -2{{'work_group_reserve_write_pipe' declared here}}
 
   sub_group_reserve_write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'sub_group_reserve_write_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'work_group_reserve_write_pipe'?}}
   sub_group_reserve_read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'sub_group_reserve_read_pipe' is invalid in OpenCL}}
 
   commit_read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'commit_read_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{'commit_read_pipe' declared here}}
   commit_write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'commit_write_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'commit_read_pipe'?}}
 
   work_group_commit_read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'work_group_commit_read_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{'work_group_commit_read_pipe' declared here}}
-  // expected-note at -2{{did you mean 'work_group_reserve_read_pipe'?}}
   work_group_commit_write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'work_group_commit_write_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{'work_group_commit_write_pipe' declared here}}
-  // expected-note at -2{{did you mean 'work_group_commit_read_pipe'?}}
 
   sub_group_commit_write_pipe(tmp, tmp); // expected-error{{implicit declaration of function 'sub_group_commit_write_pipe' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'work_group_commit_write_pipe'?}}
   sub_group_commit_read_pipe(tmp, tmp);  // expected-error{{implicit declaration of function 'sub_group_commit_read_pipe' is invalid in OpenCL}}
 
   get_pipe_num_packets(tmp); // expected-error{{implicit declaration of function 'get_pipe_num_packets' is invalid in OpenCL}}
-  // expected-note at -1{{'get_pipe_num_packets' declared here}}
   get_pipe_max_packets(tmp); // expected-error{{implicit declaration of function 'get_pipe_max_packets' is invalid in OpenCL}}
-  // expected-note at -1{{did you mean 'get_pipe_num_packets'?}}
 }

diff  --git a/clang/test/SemaOpenCL/to_addr_builtin.cl b/clang/test/SemaOpenCL/to_addr_builtin.cl
index f5df7abc3b4f2..5b1f7839cdbce 100644
--- a/clang/test/SemaOpenCL/to_addr_builtin.cl
+++ b/clang/test/SemaOpenCL/to_addr_builtin.cl
@@ -63,10 +63,8 @@ void test(void) {
 #if (__OPENCL_C_VERSION__ < CL_VERSION_2_0) || (__OPENCL_C_VERSION__ >= CL_VERSION_3_0 && !defined(__opencl_c_generic_address_space))
   // expected-error at -2{{implicit declaration of function 'to_local' is invalid in OpenCL}}
   // expected-warning at -3{{incompatible integer to pointer conversion assigning to '__local int *__private' from 'int'}}
-  // expected-note at -4{{did you mean 'to_global'}}
-  // expected-note at 15{{'to_global' declared here}}
 #else
-  // expected-warning at -7{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
+  // expected-warning at -5{{passing non-generic address space pointer to to_local may cause dynamic conversion affecting performance}}
 #endif
 
   priv = to_global(glob);

diff  --git a/clang/test/VFS/module_missing_vfs.m b/clang/test/VFS/module_missing_vfs.m
index 3cd8fc2c9eed0..f2f72f4440417 100644
--- a/clang/test/VFS/module_missing_vfs.m
+++ b/clang/test/VFS/module_missing_vfs.m
@@ -6,7 +6,7 @@
 // RUN: find %t/mcp -name "A-*.pcm" | count 1
 
 // RUN: sed -e "s at INPUT_DIR@%{/S:regex_replacement}/Inputs at g" -e "s at OUT_DIR@%{/t:regex_replacement}@g" %S/Inputs/MissingVFS/vfsoverlay.yaml > %t/vfs.yaml
-// RUN: %clang_cc1 -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/mcp -I %S/Inputs/MissingVFS %s -fsyntax-only -ivfsoverlay %t/vfs.yaml
+// RUN: %clang_cc1 -Wno-error=implicit-function-declaration -fmodules -fimplicit-module-maps -fmodules-cache-path=%t/mcp -I %S/Inputs/MissingVFS %s -fsyntax-only -ivfsoverlay %t/vfs.yaml
 // RUN: find %t/mcp -name "A-*.pcm" | count 1
 
 @import A;

diff  --git a/compiler-rt/test/dfsan/mmap_at_init.c b/compiler-rt/test/dfsan/mmap_at_init.c
index 913602e13e7cd..65a5ccd83945c 100644
--- a/compiler-rt/test/dfsan/mmap_at_init.c
+++ b/compiler-rt/test/dfsan/mmap_at_init.c
@@ -12,6 +12,8 @@
 
 #ifdef CALLOC
 
+extern void exit(int) __attribute__((noreturn));
+
 // dfsan_init() installs interceptors via dlysm(), which calls calloc().
 // Calling mmap() from here should work even if interceptors haven't been fully
 // set up yet.

diff  --git a/compiler-rt/test/profile/Posix/gcov-shared-flush.c b/compiler-rt/test/profile/Posix/gcov-shared-flush.c
index 494fb9be761db..5604558509f91 100644
--- a/compiler-rt/test/profile/Posix/gcov-shared-flush.c
+++ b/compiler-rt/test/profile/Posix/gcov-shared-flush.c
@@ -83,6 +83,7 @@ void foo(int n) {
 extern void foo(int n);
 extern void __gcov_dump(void);
 extern void __gcov_reset(void);
+extern void _exit(int) __attribute__((noreturn));
 
 int bar1 = 0;
 int bar2 = 1;

diff  --git a/compiler-rt/test/safestack/overflow.c b/compiler-rt/test/safestack/overflow.c
index 62f86536916ef..baeac1c2afd44 100644
--- a/compiler-rt/test/safestack/overflow.c
+++ b/compiler-rt/test/safestack/overflow.c
@@ -9,6 +9,8 @@
 
 // REQUIRES: stable-runtime
 
+extern void *memset(void *, int, __typeof__(sizeof(0)));
+
 __attribute__((noinline))
 void fct(volatile int *buffer)
 {

diff  --git a/compiler-rt/test/safestack/pthread-cleanup.c b/compiler-rt/test/safestack/pthread-cleanup.c
index 55c5b42dcbb2f..e177e376f21d2 100644
--- a/compiler-rt/test/safestack/pthread-cleanup.c
+++ b/compiler-rt/test/safestack/pthread-cleanup.c
@@ -17,6 +17,8 @@ void *start(void *ptr)
   return buffer;
 }
 
+extern unsigned sleep(unsigned seconds);
+
 int main(int argc, char **argv)
 {
   int arg = atoi(argv[1]);


        


More information about the cfe-commits mailing list