[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'}}
-  //