  # Check whether --enable-vtable-verify was given.
  if test "${enable_vtable_verify+set}" = set; then :
    enableval=$enable_vtable_verify; case "$enableval" in
-diff -Npur --exclude=.git gcc-12.1.0-RC-20220429/libgcc/configure.ac gcc-12-branch/libgcc/configure.ac
---- gcc-12.1.0-RC-20220429/libgcc/configure.ac	2022-04-29 15:58:25.000000000 +0200
-+++ gcc-12-branch/libgcc/configure.ac	2022-04-30 18:42:59.000000000 +0200
+diff --git a/libgcc/configure.ac b/libgcc/configure.ac
+index 2fc9d5d7c93..7d11bf00142 100644
+--- a/libgcc/configure.ac
++++ b/libgcc/configure.ac
 @@ -68,6 +68,40 @@ AC_ARG_ENABLE(shared,
  ], [enable_shared=yes])
  AC_SUBST(enable_shared)

 torture-init
 set-torture-options $C_TORTURE_OPTIONS
 set additional_flags "-W -Wall -Wno-abi"
diff -Npur --exclude=.git gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c
--- gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c	2022-04-29 15:58:24.000000000 +0200
+++ gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_dup.c	2022-04-30 18:42:59.000000000 +0200
@@ -1,4 +1,5 @@
 /* { dg-do assemble { target { aarch64*-*-* } } } */
+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
 /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
 /* { dg-options "-O2" } */
 /* { dg-add-options arm_v8_2a_bf16_neon }  */
diff -Npur --exclude=.git gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c
--- gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c	2022-04-29 15:58:24.000000000 +0200
+++ gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_get.c	2022-04-30 18:42:59.000000000 +0200
@@ -1,4 +1,5 @@
 /* { dg-do assemble { target { aarch64*-*-* } } } */
+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
 /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
 /* { dg-add-options arm_v8_2a_bf16_neon } */
 /* { dg-additional-options "-save-temps" } */
diff -Npur --exclude=.git gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c
--- gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c	2022-04-29 15:58:24.000000000 +0200
+++ gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bf16_reinterpret.c	2022-04-30 18:42:59.000000000 +0200
@@ -1,4 +1,5 @@
 /* { dg-do assemble { target { aarch64*-*-* } } } */
+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
 /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
 /* { dg-add-options arm_v8_2a_bf16_neon }  */
 /* { dg-additional-options "-save-temps" } */
diff -Npur --exclude=.git gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c
--- gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c	2022-04-29 15:58:24.000000000 +0200
+++ gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-compile.c	2022-04-30 18:42:59.000000000 +0200
@@ -1,4 +1,5 @@
 /* { dg-do assemble { target { aarch64*-*-* } } } */
+/* { dg-require-effective-target aarch64_asm_bf16_ok }  */
 /* { dg-require-effective-target arm_v8_2a_bf16_neon_ok } */
 /* { dg-add-options arm_v8_2a_bf16_neon } */
 /* { dg-additional-options "-save-temps" } */
diff -Npur --exclude=.git gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c
--- gcc-12.1.0-RC-20220429/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c	2022-04-29 15:58:24.000000000 +0200
+++ gcc-12-branch/gcc/testsuite/gcc.target/aarch64/advsimd-intrinsics/bfcvt-nosimd.c	2022-04-30 18:42:59.000000000 +0200
@@ -2,7 +2,7 @@
 /* { dg-skip-if "" { *-*-* } { "-fno-fat-lto-objects" } } */
 /* { dg-require-effective-target aarch64_asm_bf16_ok } */

   indirect_p = pass_va_arg_by_reference (type);
   if (indirect_p)
     type = build_pointer_type (type);
@@ -19790,8 +20352,18 @@ aarch64_gimplify_va_arg_expr (tree valist, tree type, gimple_seq *pre_p,
 	  field_ptr_t = double_ptr_type_node;
 	  break;
 	case E_TFmode:
