// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// RUN: c_compiler -c -o %t1.o -I "common" "common/testsuite.c"
// RUN: c_compiler -c %s -I "common" -o %t2.o
// RUN: linker -o %t1%exeext  %t1.o %t2.o
// RUN: runtool %t1%exeext | checker "TEST PASSED"
#include "testsuite.h"
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFs0s { unsigned char :0; unsigned short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFu0c { unsigned char :0; unsigned short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFu0i { unsigned char :0; unsigned short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFu0ll { unsigned char :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFs0s_BFu0s { unsigned char :0; unsigned short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c { unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFs0c { unsigned char :0; unsigned short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFs0i { unsigned char :0; unsigned short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFs0ll { unsigned char :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFs0s { unsigned char :0; unsigned short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFu0c { unsigned char :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFu0i { unsigned char :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFu0ll { unsigned char :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0c_BFu0s { unsigned char :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i { unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFs0c { unsigned char :0; unsigned short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFs0i { unsigned char :0; unsigned short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFs0ll { unsigned char :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFs0s { unsigned char :0; unsigned short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFu0c { unsigned char :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFu0i { unsigned char :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFu0ll { unsigned char :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0i_BFu0s { unsigned char :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll { unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFs0c { unsigned char :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFs0i { unsigned char :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFs0ll { unsigned char :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFs0s { unsigned char :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFu0c { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFu0i { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFu0ll { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0ll_BFu0s { unsigned char :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s { unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFs0c { unsigned char :0; unsigned short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFs0i { unsigned char :0; unsigned short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFs0ll { unsigned char :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFs0s { unsigned char :0; unsigned short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFu0c { unsigned char :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFu0i { unsigned char :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFu0ll { unsigned char :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu0s_BFu0s { unsigned char :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu15i { unsigned char :0; unsigned short :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu15ll { unsigned char :0; unsigned short :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu15s { unsigned char :0; unsigned short :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu16i { unsigned char :0; unsigned short :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu16ll { unsigned char :0; unsigned short :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu16s { unsigned char :0; unsigned short :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu17i { unsigned char :0; unsigned short :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu17ll { unsigned char :0; unsigned short :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu1c { unsigned char :0; unsigned short :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu1i { unsigned char :0; unsigned short :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu1ll { unsigned char :0; unsigned short :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu1s { unsigned char :0; unsigned short :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu31i { unsigned char :0; unsigned short :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu31ll { unsigned char :0; unsigned short :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu32i { unsigned char :0; unsigned short :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu32ll { unsigned char :0; unsigned short :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu33 { unsigned char :0; unsigned short :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu7c { unsigned char :0; unsigned short :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu7i { unsigned char :0; unsigned short :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu7ll { unsigned char :0; unsigned short :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu7s { unsigned char :0; unsigned short :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu8c { unsigned char :0; unsigned short :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu8i { unsigned char :0; unsigned short :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu8ll { unsigned char :0; unsigned short :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu8s { unsigned char :0; unsigned short :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu9i { unsigned char :0; unsigned short :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu9ll { unsigned char :0; unsigned short :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0s_BFu9s { unsigned char :0; unsigned short :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0c_BFu0s_C { unsigned char :0; unsigned short :0; char v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_D { unsigned char :0; unsigned short :0; double v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_F { unsigned char :0; unsigned short :0; float v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_I { unsigned char :0; unsigned short :0; int v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_Ip { unsigned char :0; unsigned short :0; int * v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_L { unsigned char :0; unsigned short :0; long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_S { unsigned char :0; unsigned short :0; short v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_Uc { unsigned char :0; unsigned short :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_Ui { unsigned char :0; unsigned short :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_Ul { unsigned char :0; unsigned short :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_Us { unsigned char :0; unsigned short :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0c_BFu0s_Vp { unsigned char :0; unsigned short :0; void * v1; };
struct __attribute__((packed)) aBFu0c_BFu15i { unsigned char :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu0c { unsigned char :0; unsigned int v1:15; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu0i { unsigned char :0; unsigned int v1:15; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu0ll { unsigned char :0; unsigned int v1:15; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu0s { unsigned char :0; unsigned int v1:15; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu15i { unsigned char :0; unsigned int v1:15; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu15ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu15s { unsigned char :0; unsigned int v1:15; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu16i { unsigned char :0; unsigned int v1:15; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu16ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu16s { unsigned char :0; unsigned int v1:15; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu17i { unsigned char :0; unsigned int v1:15; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu17ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu1c { unsigned char :0; unsigned int v1:15; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu1i { unsigned char :0; unsigned int v1:15; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu1ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu1s { unsigned char :0; unsigned int v1:15; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu31i { unsigned char :0; unsigned int v1:15; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu31ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu32i { unsigned char :0; unsigned int v1:15; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu32ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu33 { unsigned char :0; unsigned int v1:15; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu7c { unsigned char :0; unsigned int v1:15; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu7i { unsigned char :0; unsigned int v1:15; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu7ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu7s { unsigned char :0; unsigned int v1:15; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu8c { unsigned char :0; unsigned int v1:15; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu8i { unsigned char :0; unsigned int v1:15; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu8ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu8s { unsigned char :0; unsigned int v1:15; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu9i { unsigned char :0; unsigned int v1:15; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu9ll { unsigned char :0; unsigned int v1:15; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15i_BFu9s { unsigned char :0; unsigned int v1:15; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15i_C { unsigned char :0; unsigned int v1:15; char v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_D { unsigned char :0; unsigned int v1:15; double v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_F { unsigned char :0; unsigned int v1:15; float v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_I { unsigned char :0; unsigned int v1:15; int v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_Ip { unsigned char :0; unsigned int v1:15; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_L { unsigned char :0; unsigned int v1:15; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_S { unsigned char :0; unsigned int v1:15; short v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_Uc { unsigned char :0; unsigned int v1:15; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_Ui { unsigned char :0; unsigned int v1:15; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_Ul { unsigned char :0; unsigned int v1:15; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_Us { unsigned char :0; unsigned int v1:15; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu15i_Vp { unsigned char :0; unsigned int v1:15; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll { unsigned char :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu0c { unsigned char :0; unsigned long long v1:15; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu0i { unsigned char :0; unsigned long long v1:15; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu0ll { unsigned char :0; unsigned long long v1:15; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu0s { unsigned char :0; unsigned long long v1:15; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu15i { unsigned char :0; unsigned long long v1:15; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu15ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu15s { unsigned char :0; unsigned long long v1:15; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu16i { unsigned char :0; unsigned long long v1:15; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu16ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu16s { unsigned char :0; unsigned long long v1:15; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu17i { unsigned char :0; unsigned long long v1:15; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu17ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu1c { unsigned char :0; unsigned long long v1:15; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu1i { unsigned char :0; unsigned long long v1:15; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu1ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu1s { unsigned char :0; unsigned long long v1:15; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu31i { unsigned char :0; unsigned long long v1:15; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu31ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu32i { unsigned char :0; unsigned long long v1:15; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu32ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu33 { unsigned char :0; unsigned long long v1:15; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu7c { unsigned char :0; unsigned long long v1:15; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu7i { unsigned char :0; unsigned long long v1:15; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu7ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu7s { unsigned char :0; unsigned long long v1:15; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu8c { unsigned char :0; unsigned long long v1:15; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu8i { unsigned char :0; unsigned long long v1:15; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu8ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu8s { unsigned char :0; unsigned long long v1:15; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu9i { unsigned char :0; unsigned long long v1:15; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu9ll { unsigned char :0; unsigned long long v1:15; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15ll_BFu9s { unsigned char :0; unsigned long long v1:15; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15ll_C { unsigned char :0; unsigned long long v1:15; char v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_D { unsigned char :0; unsigned long long v1:15; double v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_F { unsigned char :0; unsigned long long v1:15; float v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_I { unsigned char :0; unsigned long long v1:15; int v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_Ip { unsigned char :0; unsigned long long v1:15; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_L { unsigned char :0; unsigned long long v1:15; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_S { unsigned char :0; unsigned long long v1:15; short v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_Uc { unsigned char :0; unsigned long long v1:15; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_Ui { unsigned char :0; unsigned long long v1:15; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_Ul { unsigned char :0; unsigned long long v1:15; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_Us { unsigned char :0; unsigned long long v1:15; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu15ll_Vp { unsigned char :0; unsigned long long v1:15; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu15s { unsigned char :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu0c { unsigned char :0; unsigned short v1:15; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu0i { unsigned char :0; unsigned short v1:15; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu0ll { unsigned char :0; unsigned short v1:15; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu0s { unsigned char :0; unsigned short v1:15; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu15i { unsigned char :0; unsigned short v1:15; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu15ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu15s { unsigned char :0; unsigned short v1:15; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu16i { unsigned char :0; unsigned short v1:15; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu16ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu16s { unsigned char :0; unsigned short v1:15; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu17i { unsigned char :0; unsigned short v1:15; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu17ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu1c { unsigned char :0; unsigned short v1:15; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu1i { unsigned char :0; unsigned short v1:15; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu1ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu1s { unsigned char :0; unsigned short v1:15; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu31i { unsigned char :0; unsigned short v1:15; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu31ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu32i { unsigned char :0; unsigned short v1:15; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu32ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu33 { unsigned char :0; unsigned short v1:15; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu7c { unsigned char :0; unsigned short v1:15; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu7i { unsigned char :0; unsigned short v1:15; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu7ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu7s { unsigned char :0; unsigned short v1:15; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu8c { unsigned char :0; unsigned short v1:15; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu8i { unsigned char :0; unsigned short v1:15; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu8ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu8s { unsigned char :0; unsigned short v1:15; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu9i { unsigned char :0; unsigned short v1:15; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu9ll { unsigned char :0; unsigned short v1:15; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15s_BFu9s { unsigned char :0; unsigned short v1:15; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu15s_C { unsigned char :0; unsigned short v1:15; char v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_D { unsigned char :0; unsigned short v1:15; double v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_F { unsigned char :0; unsigned short v1:15; float v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_I { unsigned char :0; unsigned short v1:15; int v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_Ip { unsigned char :0; unsigned short v1:15; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_L { unsigned char :0; unsigned short v1:15; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_S { unsigned char :0; unsigned short v1:15; short v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_Uc { unsigned char :0; unsigned short v1:15; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_Ui { unsigned char :0; unsigned short v1:15; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_Ul { unsigned char :0; unsigned short v1:15; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_Us { unsigned char :0; unsigned short v1:15; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu15s_Vp { unsigned char :0; unsigned short v1:15; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu16i { unsigned char :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu0c { unsigned char :0; unsigned int v1:16; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu0i { unsigned char :0; unsigned int v1:16; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu0ll { unsigned char :0; unsigned int v1:16; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu0s { unsigned char :0; unsigned int v1:16; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu15i { unsigned char :0; unsigned int v1:16; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu15ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu15s { unsigned char :0; unsigned int v1:16; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu16i { unsigned char :0; unsigned int v1:16; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu16ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu16s { unsigned char :0; unsigned int v1:16; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu17i { unsigned char :0; unsigned int v1:16; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu17ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu1c { unsigned char :0; unsigned int v1:16; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu1i { unsigned char :0; unsigned int v1:16; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu1ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu1s { unsigned char :0; unsigned int v1:16; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu31i { unsigned char :0; unsigned int v1:16; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu31ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu32i { unsigned char :0; unsigned int v1:16; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu32ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu33 { unsigned char :0; unsigned int v1:16; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu7c { unsigned char :0; unsigned int v1:16; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu7i { unsigned char :0; unsigned int v1:16; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu7ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu7s { unsigned char :0; unsigned int v1:16; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu8c { unsigned char :0; unsigned int v1:16; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu8i { unsigned char :0; unsigned int v1:16; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu8ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu8s { unsigned char :0; unsigned int v1:16; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu9i { unsigned char :0; unsigned int v1:16; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu9ll { unsigned char :0; unsigned int v1:16; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16i_BFu9s { unsigned char :0; unsigned int v1:16; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16i_C { unsigned char :0; unsigned int v1:16; char v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_D { unsigned char :0; unsigned int v1:16; double v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_F { unsigned char :0; unsigned int v1:16; float v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_I { unsigned char :0; unsigned int v1:16; int v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_Ip { unsigned char :0; unsigned int v1:16; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_L { unsigned char :0; unsigned int v1:16; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_S { unsigned char :0; unsigned int v1:16; short v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_Uc { unsigned char :0; unsigned int v1:16; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_Ui { unsigned char :0; unsigned int v1:16; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_Ul { unsigned char :0; unsigned int v1:16; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_Us { unsigned char :0; unsigned int v1:16; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu16i_Vp { unsigned char :0; unsigned int v1:16; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll { unsigned char :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu0c { unsigned char :0; unsigned long long v1:16; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu0i { unsigned char :0; unsigned long long v1:16; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu0ll { unsigned char :0; unsigned long long v1:16; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu0s { unsigned char :0; unsigned long long v1:16; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu15i { unsigned char :0; unsigned long long v1:16; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu15ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu15s { unsigned char :0; unsigned long long v1:16; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu16i { unsigned char :0; unsigned long long v1:16; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu16ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu16s { unsigned char :0; unsigned long long v1:16; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu17i { unsigned char :0; unsigned long long v1:16; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu17ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu1c { unsigned char :0; unsigned long long v1:16; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu1i { unsigned char :0; unsigned long long v1:16; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu1ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu1s { unsigned char :0; unsigned long long v1:16; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu31i { unsigned char :0; unsigned long long v1:16; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu31ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu32i { unsigned char :0; unsigned long long v1:16; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu32ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu33 { unsigned char :0; unsigned long long v1:16; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu7c { unsigned char :0; unsigned long long v1:16; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu7i { unsigned char :0; unsigned long long v1:16; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu7ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu7s { unsigned char :0; unsigned long long v1:16; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu8c { unsigned char :0; unsigned long long v1:16; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu8i { unsigned char :0; unsigned long long v1:16; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu8ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu8s { unsigned char :0; unsigned long long v1:16; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu9i { unsigned char :0; unsigned long long v1:16; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu9ll { unsigned char :0; unsigned long long v1:16; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16ll_BFu9s { unsigned char :0; unsigned long long v1:16; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16ll_C { unsigned char :0; unsigned long long v1:16; char v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_D { unsigned char :0; unsigned long long v1:16; double v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_F { unsigned char :0; unsigned long long v1:16; float v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_I { unsigned char :0; unsigned long long v1:16; int v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_Ip { unsigned char :0; unsigned long long v1:16; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_L { unsigned char :0; unsigned long long v1:16; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_S { unsigned char :0; unsigned long long v1:16; short v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_Uc { unsigned char :0; unsigned long long v1:16; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_Ui { unsigned char :0; unsigned long long v1:16; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_Ul { unsigned char :0; unsigned long long v1:16; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_Us { unsigned char :0; unsigned long long v1:16; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu16ll_Vp { unsigned char :0; unsigned long long v1:16; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu16s { unsigned char :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu0c { unsigned char :0; unsigned short v1:16; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu0i { unsigned char :0; unsigned short v1:16; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu0ll { unsigned char :0; unsigned short v1:16; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu0s { unsigned char :0; unsigned short v1:16; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu15i { unsigned char :0; unsigned short v1:16; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu15ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu15s { unsigned char :0; unsigned short v1:16; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu16i { unsigned char :0; unsigned short v1:16; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu16ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu16s { unsigned char :0; unsigned short v1:16; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu17i { unsigned char :0; unsigned short v1:16; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu17ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu1c { unsigned char :0; unsigned short v1:16; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu1i { unsigned char :0; unsigned short v1:16; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu1ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu1s { unsigned char :0; unsigned short v1:16; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu31i { unsigned char :0; unsigned short v1:16; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu31ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu32i { unsigned char :0; unsigned short v1:16; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu32ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu33 { unsigned char :0; unsigned short v1:16; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu7c { unsigned char :0; unsigned short v1:16; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu7i { unsigned char :0; unsigned short v1:16; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu7ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu7s { unsigned char :0; unsigned short v1:16; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu8c { unsigned char :0; unsigned short v1:16; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu8i { unsigned char :0; unsigned short v1:16; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu8ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu8s { unsigned char :0; unsigned short v1:16; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu9i { unsigned char :0; unsigned short v1:16; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu9ll { unsigned char :0; unsigned short v1:16; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16s_BFu9s { unsigned char :0; unsigned short v1:16; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu16s_C { unsigned char :0; unsigned short v1:16; char v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_D { unsigned char :0; unsigned short v1:16; double v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_F { unsigned char :0; unsigned short v1:16; float v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_I { unsigned char :0; unsigned short v1:16; int v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_Ip { unsigned char :0; unsigned short v1:16; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_L { unsigned char :0; unsigned short v1:16; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_S { unsigned char :0; unsigned short v1:16; short v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_Uc { unsigned char :0; unsigned short v1:16; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_Ui { unsigned char :0; unsigned short v1:16; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_Ul { unsigned char :0; unsigned short v1:16; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_Us { unsigned char :0; unsigned short v1:16; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu16s_Vp { unsigned char :0; unsigned short v1:16; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu17i { unsigned char :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu0c { unsigned char :0; unsigned int v1:17; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu0i { unsigned char :0; unsigned int v1:17; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu0ll { unsigned char :0; unsigned int v1:17; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu0s { unsigned char :0; unsigned int v1:17; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu15i { unsigned char :0; unsigned int v1:17; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu15ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu15s { unsigned char :0; unsigned int v1:17; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu16i { unsigned char :0; unsigned int v1:17; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu16ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu16s { unsigned char :0; unsigned int v1:17; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu17i { unsigned char :0; unsigned int v1:17; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu17ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu1c { unsigned char :0; unsigned int v1:17; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu1i { unsigned char :0; unsigned int v1:17; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu1ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu1s { unsigned char :0; unsigned int v1:17; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu31i { unsigned char :0; unsigned int v1:17; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu31ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu32i { unsigned char :0; unsigned int v1:17; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu32ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu33 { unsigned char :0; unsigned int v1:17; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu7c { unsigned char :0; unsigned int v1:17; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu7i { unsigned char :0; unsigned int v1:17; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu7ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu7s { unsigned char :0; unsigned int v1:17; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu8c { unsigned char :0; unsigned int v1:17; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu8i { unsigned char :0; unsigned int v1:17; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu8ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu8s { unsigned char :0; unsigned int v1:17; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu9i { unsigned char :0; unsigned int v1:17; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu9ll { unsigned char :0; unsigned int v1:17; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu17i_BFu9s { unsigned char :0; unsigned int v1:17; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu17i_C { unsigned char :0; unsigned int v1:17; char v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_D { unsigned char :0; unsigned int v1:17; double v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_F { unsigned char :0; unsigned int v1:17; float v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_I { unsigned char :0; unsigned int v1:17; int v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_Ip { unsigned char :0; unsigned int v1:17; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_L { unsigned char :0; unsigned int v1:17; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_S { unsigned char :0; unsigned int v1:17; short v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_Uc { unsigned char :0; unsigned int v1:17; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_Ui { unsigned char :0; unsigned int v1:17; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_Ul { unsigned char :0; unsigned int v1:17; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_Us { unsigned char :0; unsigned int v1:17; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu17i_Vp { unsigned char :0; unsigned int v1:17; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll { unsigned char :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu0c { unsigned char :0; unsigned long long v1:17; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu0i { unsigned char :0; unsigned long long v1:17; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu0ll { unsigned char :0; unsigned long long v1:17; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu0s { unsigned char :0; unsigned long long v1:17; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu15i { unsigned char :0; unsigned long long v1:17; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu15ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu15s { unsigned char :0; unsigned long long v1:17; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu16i { unsigned char :0; unsigned long long v1:17; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu16ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu16s { unsigned char :0; unsigned long long v1:17; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu17i { unsigned char :0; unsigned long long v1:17; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu17ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu1c { unsigned char :0; unsigned long long v1:17; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu1i { unsigned char :0; unsigned long long v1:17; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu1ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu1s { unsigned char :0; unsigned long long v1:17; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu31i { unsigned char :0; unsigned long long v1:17; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu31ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu32i { unsigned char :0; unsigned long long v1:17; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu32ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu33 { unsigned char :0; unsigned long long v1:17; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu7c { unsigned char :0; unsigned long long v1:17; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu7i { unsigned char :0; unsigned long long v1:17; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu7ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu7s { unsigned char :0; unsigned long long v1:17; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu8c { unsigned char :0; unsigned long long v1:17; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu8i { unsigned char :0; unsigned long long v1:17; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu8ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu8s { unsigned char :0; unsigned long long v1:17; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu9i { unsigned char :0; unsigned long long v1:17; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu9ll { unsigned char :0; unsigned long long v1:17; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu17ll_BFu9s { unsigned char :0; unsigned long long v1:17; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu17ll_C { unsigned char :0; unsigned long long v1:17; char v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_D { unsigned char :0; unsigned long long v1:17; double v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_F { unsigned char :0; unsigned long long v1:17; float v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_I { unsigned char :0; unsigned long long v1:17; int v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_Ip { unsigned char :0; unsigned long long v1:17; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_L { unsigned char :0; unsigned long long v1:17; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_S { unsigned char :0; unsigned long long v1:17; short v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_Uc { unsigned char :0; unsigned long long v1:17; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_Ui { unsigned char :0; unsigned long long v1:17; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_Ul { unsigned char :0; unsigned long long v1:17; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_Us { unsigned char :0; unsigned long long v1:17; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu17ll_Vp { unsigned char :0; unsigned long long v1:17; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu1c { unsigned char :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu0c { unsigned char :0; unsigned char v1:1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu0i { unsigned char :0; unsigned char v1:1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu0ll { unsigned char :0; unsigned char v1:1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu0s { unsigned char :0; unsigned char v1:1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu15i { unsigned char :0; unsigned char v1:1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu15ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu15s { unsigned char :0; unsigned char v1:1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu16i { unsigned char :0; unsigned char v1:1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu16ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu16s { unsigned char :0; unsigned char v1:1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu17i { unsigned char :0; unsigned char v1:1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu17ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu1c { unsigned char :0; unsigned char v1:1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu1i { unsigned char :0; unsigned char v1:1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu1ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu1s { unsigned char :0; unsigned char v1:1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu31i { unsigned char :0; unsigned char v1:1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu31ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu32i { unsigned char :0; unsigned char v1:1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu32ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu33 { unsigned char :0; unsigned char v1:1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu7c { unsigned char :0; unsigned char v1:1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu7i { unsigned char :0; unsigned char v1:1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu7ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu7s { unsigned char :0; unsigned char v1:1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu8c { unsigned char :0; unsigned char v1:1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu8i { unsigned char :0; unsigned char v1:1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu8ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu8s { unsigned char :0; unsigned char v1:1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu9i { unsigned char :0; unsigned char v1:1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu9ll { unsigned char :0; unsigned char v1:1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1c_BFu9s { unsigned char :0; unsigned char v1:1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1c_C { unsigned char :0; unsigned char v1:1; char v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_D { unsigned char :0; unsigned char v1:1; double v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_F { unsigned char :0; unsigned char v1:1; float v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_I { unsigned char :0; unsigned char v1:1; int v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_Ip { unsigned char :0; unsigned char v1:1; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_L { unsigned char :0; unsigned char v1:1; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_S { unsigned char :0; unsigned char v1:1; short v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_Uc { unsigned char :0; unsigned char v1:1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_Ui { unsigned char :0; unsigned char v1:1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_Ul { unsigned char :0; unsigned char v1:1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_Us { unsigned char :0; unsigned char v1:1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu1c_Vp { unsigned char :0; unsigned char v1:1; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu1i { unsigned char :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu0c { unsigned char :0; unsigned int v1:1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu0i { unsigned char :0; unsigned int v1:1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu0ll { unsigned char :0; unsigned int v1:1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu0s { unsigned char :0; unsigned int v1:1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu15i { unsigned char :0; unsigned int v1:1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu15ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu15s { unsigned char :0; unsigned int v1:1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu16i { unsigned char :0; unsigned int v1:1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu16ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu16s { unsigned char :0; unsigned int v1:1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu17i { unsigned char :0; unsigned int v1:1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu17ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu1c { unsigned char :0; unsigned int v1:1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu1i { unsigned char :0; unsigned int v1:1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu1ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu1s { unsigned char :0; unsigned int v1:1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu31i { unsigned char :0; unsigned int v1:1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu31ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu32i { unsigned char :0; unsigned int v1:1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu32ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu33 { unsigned char :0; unsigned int v1:1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu7c { unsigned char :0; unsigned int v1:1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu7i { unsigned char :0; unsigned int v1:1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu7ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu7s { unsigned char :0; unsigned int v1:1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu8c { unsigned char :0; unsigned int v1:1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu8i { unsigned char :0; unsigned int v1:1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu8ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu8s { unsigned char :0; unsigned int v1:1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu9i { unsigned char :0; unsigned int v1:1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu9ll { unsigned char :0; unsigned int v1:1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1i_BFu9s { unsigned char :0; unsigned int v1:1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1i_C { unsigned char :0; unsigned int v1:1; char v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_D { unsigned char :0; unsigned int v1:1; double v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_F { unsigned char :0; unsigned int v1:1; float v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_I { unsigned char :0; unsigned int v1:1; int v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_Ip { unsigned char :0; unsigned int v1:1; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_L { unsigned char :0; unsigned int v1:1; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_S { unsigned char :0; unsigned int v1:1; short v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_Uc { unsigned char :0; unsigned int v1:1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_Ui { unsigned char :0; unsigned int v1:1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_Ul { unsigned char :0; unsigned int v1:1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_Us { unsigned char :0; unsigned int v1:1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu1i_Vp { unsigned char :0; unsigned int v1:1; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll { unsigned char :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu0c { unsigned char :0; unsigned long long v1:1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu0i { unsigned char :0; unsigned long long v1:1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu0ll { unsigned char :0; unsigned long long v1:1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu0s { unsigned char :0; unsigned long long v1:1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu15i { unsigned char :0; unsigned long long v1:1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu15ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu15s { unsigned char :0; unsigned long long v1:1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu16i { unsigned char :0; unsigned long long v1:1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu16ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu16s { unsigned char :0; unsigned long long v1:1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu17i { unsigned char :0; unsigned long long v1:1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu17ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu1c { unsigned char :0; unsigned long long v1:1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu1i { unsigned char :0; unsigned long long v1:1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu1ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu1s { unsigned char :0; unsigned long long v1:1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu31i { unsigned char :0; unsigned long long v1:1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu31ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu32i { unsigned char :0; unsigned long long v1:1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu32ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu33 { unsigned char :0; unsigned long long v1:1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu7c { unsigned char :0; unsigned long long v1:1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu7i { unsigned char :0; unsigned long long v1:1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu7ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu7s { unsigned char :0; unsigned long long v1:1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu8c { unsigned char :0; unsigned long long v1:1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu8i { unsigned char :0; unsigned long long v1:1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu8ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu8s { unsigned char :0; unsigned long long v1:1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu9i { unsigned char :0; unsigned long long v1:1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu9ll { unsigned char :0; unsigned long long v1:1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1ll_BFu9s { unsigned char :0; unsigned long long v1:1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1ll_C { unsigned char :0; unsigned long long v1:1; char v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_D { unsigned char :0; unsigned long long v1:1; double v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_F { unsigned char :0; unsigned long long v1:1; float v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_I { unsigned char :0; unsigned long long v1:1; int v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_Ip { unsigned char :0; unsigned long long v1:1; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_L { unsigned char :0; unsigned long long v1:1; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_S { unsigned char :0; unsigned long long v1:1; short v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_Uc { unsigned char :0; unsigned long long v1:1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_Ui { unsigned char :0; unsigned long long v1:1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_Ul { unsigned char :0; unsigned long long v1:1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_Us { unsigned char :0; unsigned long long v1:1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu1ll_Vp { unsigned char :0; unsigned long long v1:1; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu1s { unsigned char :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu0c { unsigned char :0; unsigned short v1:1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu0i { unsigned char :0; unsigned short v1:1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu0ll { unsigned char :0; unsigned short v1:1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu0s { unsigned char :0; unsigned short v1:1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu15i { unsigned char :0; unsigned short v1:1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu15ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu15s { unsigned char :0; unsigned short v1:1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu16i { unsigned char :0; unsigned short v1:1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu16ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu16s { unsigned char :0; unsigned short v1:1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu17i { unsigned char :0; unsigned short v1:1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu17ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu1c { unsigned char :0; unsigned short v1:1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu1i { unsigned char :0; unsigned short v1:1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu1ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu1s { unsigned char :0; unsigned short v1:1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu31i { unsigned char :0; unsigned short v1:1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu31ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu32i { unsigned char :0; unsigned short v1:1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu32ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu33 { unsigned char :0; unsigned short v1:1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu7c { unsigned char :0; unsigned short v1:1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu7i { unsigned char :0; unsigned short v1:1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu7ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu7s { unsigned char :0; unsigned short v1:1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu8c { unsigned char :0; unsigned short v1:1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu8i { unsigned char :0; unsigned short v1:1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu8ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu8s { unsigned char :0; unsigned short v1:1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu9i { unsigned char :0; unsigned short v1:1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu9ll { unsigned char :0; unsigned short v1:1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1s_BFu9s { unsigned char :0; unsigned short v1:1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu1s_C { unsigned char :0; unsigned short v1:1; char v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_D { unsigned char :0; unsigned short v1:1; double v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_F { unsigned char :0; unsigned short v1:1; float v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_I { unsigned char :0; unsigned short v1:1; int v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_Ip { unsigned char :0; unsigned short v1:1; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_L { unsigned char :0; unsigned short v1:1; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_S { unsigned char :0; unsigned short v1:1; short v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_Uc { unsigned char :0; unsigned short v1:1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_Ui { unsigned char :0; unsigned short v1:1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_Ul { unsigned char :0; unsigned short v1:1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_Us { unsigned char :0; unsigned short v1:1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu1s_Vp { unsigned char :0; unsigned short v1:1; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu31i { unsigned char :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu0c { unsigned char :0; unsigned int v1:31; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu0i { unsigned char :0; unsigned int v1:31; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu0ll { unsigned char :0; unsigned int v1:31; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu0s { unsigned char :0; unsigned int v1:31; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu15i { unsigned char :0; unsigned int v1:31; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu15ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu15s { unsigned char :0; unsigned int v1:31; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu16i { unsigned char :0; unsigned int v1:31; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu16ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu16s { unsigned char :0; unsigned int v1:31; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu17i { unsigned char :0; unsigned int v1:31; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu17ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu1c { unsigned char :0; unsigned int v1:31; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu1i { unsigned char :0; unsigned int v1:31; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu1ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu1s { unsigned char :0; unsigned int v1:31; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu31i { unsigned char :0; unsigned int v1:31; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu31ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu32i { unsigned char :0; unsigned int v1:31; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu32ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu33 { unsigned char :0; unsigned int v1:31; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu7c { unsigned char :0; unsigned int v1:31; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu7i { unsigned char :0; unsigned int v1:31; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu7ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu7s { unsigned char :0; unsigned int v1:31; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu8c { unsigned char :0; unsigned int v1:31; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu8i { unsigned char :0; unsigned int v1:31; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu8ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu8s { unsigned char :0; unsigned int v1:31; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu9i { unsigned char :0; unsigned int v1:31; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu9ll { unsigned char :0; unsigned int v1:31; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu31i_BFu9s { unsigned char :0; unsigned int v1:31; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu31i_C { unsigned char :0; unsigned int v1:31; char v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_D { unsigned char :0; unsigned int v1:31; double v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_F { unsigned char :0; unsigned int v1:31; float v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_I { unsigned char :0; unsigned int v1:31; int v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_Ip { unsigned char :0; unsigned int v1:31; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_L { unsigned char :0; unsigned int v1:31; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_S { unsigned char :0; unsigned int v1:31; short v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_Uc { unsigned char :0; unsigned int v1:31; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_Ui { unsigned char :0; unsigned int v1:31; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_Ul { unsigned char :0; unsigned int v1:31; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_Us { unsigned char :0; unsigned int v1:31; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu31i_Vp { unsigned char :0; unsigned int v1:31; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll { unsigned char :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu0c { unsigned char :0; unsigned long long v1:31; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu0i { unsigned char :0; unsigned long long v1:31; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu0ll { unsigned char :0; unsigned long long v1:31; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu0s { unsigned char :0; unsigned long long v1:31; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu15i { unsigned char :0; unsigned long long v1:31; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu15ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu15s { unsigned char :0; unsigned long long v1:31; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu16i { unsigned char :0; unsigned long long v1:31; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu16ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu16s { unsigned char :0; unsigned long long v1:31; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu17i { unsigned char :0; unsigned long long v1:31; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu17ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu1c { unsigned char :0; unsigned long long v1:31; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu1i { unsigned char :0; unsigned long long v1:31; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu1ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu1s { unsigned char :0; unsigned long long v1:31; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu31i { unsigned char :0; unsigned long long v1:31; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu31ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu32i { unsigned char :0; unsigned long long v1:31; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu32ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu33 { unsigned char :0; unsigned long long v1:31; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu7c { unsigned char :0; unsigned long long v1:31; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu7i { unsigned char :0; unsigned long long v1:31; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu7ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu7s { unsigned char :0; unsigned long long v1:31; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu8c { unsigned char :0; unsigned long long v1:31; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu8i { unsigned char :0; unsigned long long v1:31; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu8ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu8s { unsigned char :0; unsigned long long v1:31; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu9i { unsigned char :0; unsigned long long v1:31; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu9ll { unsigned char :0; unsigned long long v1:31; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu31ll_BFu9s { unsigned char :0; unsigned long long v1:31; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu31ll_C { unsigned char :0; unsigned long long v1:31; char v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_D { unsigned char :0; unsigned long long v1:31; double v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_F { unsigned char :0; unsigned long long v1:31; float v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_I { unsigned char :0; unsigned long long v1:31; int v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_Ip { unsigned char :0; unsigned long long v1:31; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_L { unsigned char :0; unsigned long long v1:31; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_S { unsigned char :0; unsigned long long v1:31; short v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_Uc { unsigned char :0; unsigned long long v1:31; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_Ui { unsigned char :0; unsigned long long v1:31; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_Ul { unsigned char :0; unsigned long long v1:31; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_Us { unsigned char :0; unsigned long long v1:31; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu31ll_Vp { unsigned char :0; unsigned long long v1:31; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu32i { unsigned char :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu0c { unsigned char :0; unsigned int v1:32; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu0i { unsigned char :0; unsigned int v1:32; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu0ll { unsigned char :0; unsigned int v1:32; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu0s { unsigned char :0; unsigned int v1:32; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu15i { unsigned char :0; unsigned int v1:32; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu15ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu15s { unsigned char :0; unsigned int v1:32; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu16i { unsigned char :0; unsigned int v1:32; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu16ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu16s { unsigned char :0; unsigned int v1:32; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu17i { unsigned char :0; unsigned int v1:32; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu17ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu1c { unsigned char :0; unsigned int v1:32; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu1i { unsigned char :0; unsigned int v1:32; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu1ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu1s { unsigned char :0; unsigned int v1:32; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu31i { unsigned char :0; unsigned int v1:32; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu31ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu32i { unsigned char :0; unsigned int v1:32; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu32ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu33 { unsigned char :0; unsigned int v1:32; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu7c { unsigned char :0; unsigned int v1:32; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu7i { unsigned char :0; unsigned int v1:32; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu7ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu7s { unsigned char :0; unsigned int v1:32; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu8c { unsigned char :0; unsigned int v1:32; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu8i { unsigned char :0; unsigned int v1:32; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu8ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu8s { unsigned char :0; unsigned int v1:32; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu9i { unsigned char :0; unsigned int v1:32; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu9ll { unsigned char :0; unsigned int v1:32; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu32i_BFu9s { unsigned char :0; unsigned int v1:32; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu32i_C { unsigned char :0; unsigned int v1:32; char v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_D { unsigned char :0; unsigned int v1:32; double v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_F { unsigned char :0; unsigned int v1:32; float v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_I { unsigned char :0; unsigned int v1:32; int v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_Ip { unsigned char :0; unsigned int v1:32; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_L { unsigned char :0; unsigned int v1:32; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_S { unsigned char :0; unsigned int v1:32; short v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_Uc { unsigned char :0; unsigned int v1:32; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_Ui { unsigned char :0; unsigned int v1:32; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_Ul { unsigned char :0; unsigned int v1:32; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_Us { unsigned char :0; unsigned int v1:32; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu32i_Vp { unsigned char :0; unsigned int v1:32; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll { unsigned char :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu0c { unsigned char :0; unsigned long long v1:32; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu0i { unsigned char :0; unsigned long long v1:32; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu0ll { unsigned char :0; unsigned long long v1:32; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu0s { unsigned char :0; unsigned long long v1:32; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu15i { unsigned char :0; unsigned long long v1:32; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu15ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu15s { unsigned char :0; unsigned long long v1:32; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu16i { unsigned char :0; unsigned long long v1:32; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu16ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu16s { unsigned char :0; unsigned long long v1:32; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu17i { unsigned char :0; unsigned long long v1:32; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu17ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu1c { unsigned char :0; unsigned long long v1:32; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu1i { unsigned char :0; unsigned long long v1:32; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu1ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu1s { unsigned char :0; unsigned long long v1:32; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu31i { unsigned char :0; unsigned long long v1:32; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu31ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu32i { unsigned char :0; unsigned long long v1:32; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu32ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu33 { unsigned char :0; unsigned long long v1:32; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu7c { unsigned char :0; unsigned long long v1:32; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu7i { unsigned char :0; unsigned long long v1:32; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu7ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu7s { unsigned char :0; unsigned long long v1:32; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu8c { unsigned char :0; unsigned long long v1:32; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu8i { unsigned char :0; unsigned long long v1:32; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu8ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu8s { unsigned char :0; unsigned long long v1:32; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu9i { unsigned char :0; unsigned long long v1:32; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu9ll { unsigned char :0; unsigned long long v1:32; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu32ll_BFu9s { unsigned char :0; unsigned long long v1:32; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu32ll_C { unsigned char :0; unsigned long long v1:32; char v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_D { unsigned char :0; unsigned long long v1:32; double v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_F { unsigned char :0; unsigned long long v1:32; float v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_I { unsigned char :0; unsigned long long v1:32; int v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_Ip { unsigned char :0; unsigned long long v1:32; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_L { unsigned char :0; unsigned long long v1:32; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_S { unsigned char :0; unsigned long long v1:32; short v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_Uc { unsigned char :0; unsigned long long v1:32; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_Ui { unsigned char :0; unsigned long long v1:32; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_Ul { unsigned char :0; unsigned long long v1:32; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_Us { unsigned char :0; unsigned long long v1:32; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu32ll_Vp { unsigned char :0; unsigned long long v1:32; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu33 { unsigned char :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu0c { unsigned char :0; unsigned long long v1:33; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu0i { unsigned char :0; unsigned long long v1:33; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu0ll { unsigned char :0; unsigned long long v1:33; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu0s { unsigned char :0; unsigned long long v1:33; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu15i { unsigned char :0; unsigned long long v1:33; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu15ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu15s { unsigned char :0; unsigned long long v1:33; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu16i { unsigned char :0; unsigned long long v1:33; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu16ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu16s { unsigned char :0; unsigned long long v1:33; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu17i { unsigned char :0; unsigned long long v1:33; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu17ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu1c { unsigned char :0; unsigned long long v1:33; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu1i { unsigned char :0; unsigned long long v1:33; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu1ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu1s { unsigned char :0; unsigned long long v1:33; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu31i { unsigned char :0; unsigned long long v1:33; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu31ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu32i { unsigned char :0; unsigned long long v1:33; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu32ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu33 { unsigned char :0; unsigned long long v1:33; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu7c { unsigned char :0; unsigned long long v1:33; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu7i { unsigned char :0; unsigned long long v1:33; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu7ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu7s { unsigned char :0; unsigned long long v1:33; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu8c { unsigned char :0; unsigned long long v1:33; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu8i { unsigned char :0; unsigned long long v1:33; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu8ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu8s { unsigned char :0; unsigned long long v1:33; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu9i { unsigned char :0; unsigned long long v1:33; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu9ll { unsigned char :0; unsigned long long v1:33; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu33_BFu9s { unsigned char :0; unsigned long long v1:33; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu33_C { unsigned char :0; unsigned long long v1:33; char v2; };
struct __attribute__((packed)) aBFu0c_BFu33_D { unsigned char :0; unsigned long long v1:33; double v2; };
struct __attribute__((packed)) aBFu0c_BFu33_F { unsigned char :0; unsigned long long v1:33; float v2; };
struct __attribute__((packed)) aBFu0c_BFu33_I { unsigned char :0; unsigned long long v1:33; int v2; };
struct __attribute__((packed)) aBFu0c_BFu33_Ip { unsigned char :0; unsigned long long v1:33; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu33_L { unsigned char :0; unsigned long long v1:33; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu33_S { unsigned char :0; unsigned long long v1:33; short v2; };
struct __attribute__((packed)) aBFu0c_BFu33_Uc { unsigned char :0; unsigned long long v1:33; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu33_Ui { unsigned char :0; unsigned long long v1:33; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu33_Ul { unsigned char :0; unsigned long long v1:33; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu33_Us { unsigned char :0; unsigned long long v1:33; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu33_Vp { unsigned char :0; unsigned long long v1:33; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu7c { unsigned char :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu0c { unsigned char :0; unsigned char v1:7; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu0i { unsigned char :0; unsigned char v1:7; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu0ll { unsigned char :0; unsigned char v1:7; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu0s { unsigned char :0; unsigned char v1:7; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu15i { unsigned char :0; unsigned char v1:7; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu15ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu15s { unsigned char :0; unsigned char v1:7; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu16i { unsigned char :0; unsigned char v1:7; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu16ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu16s { unsigned char :0; unsigned char v1:7; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu17i { unsigned char :0; unsigned char v1:7; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu17ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu1c { unsigned char :0; unsigned char v1:7; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu1i { unsigned char :0; unsigned char v1:7; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu1ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu1s { unsigned char :0; unsigned char v1:7; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu31i { unsigned char :0; unsigned char v1:7; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu31ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu32i { unsigned char :0; unsigned char v1:7; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu32ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu33 { unsigned char :0; unsigned char v1:7; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu7c { unsigned char :0; unsigned char v1:7; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu7i { unsigned char :0; unsigned char v1:7; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu7ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu7s { unsigned char :0; unsigned char v1:7; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu8c { unsigned char :0; unsigned char v1:7; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu8i { unsigned char :0; unsigned char v1:7; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu8ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu8s { unsigned char :0; unsigned char v1:7; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu9i { unsigned char :0; unsigned char v1:7; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu9ll { unsigned char :0; unsigned char v1:7; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7c_BFu9s { unsigned char :0; unsigned char v1:7; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7c_C { unsigned char :0; unsigned char v1:7; char v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_D { unsigned char :0; unsigned char v1:7; double v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_F { unsigned char :0; unsigned char v1:7; float v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_I { unsigned char :0; unsigned char v1:7; int v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_Ip { unsigned char :0; unsigned char v1:7; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_L { unsigned char :0; unsigned char v1:7; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_S { unsigned char :0; unsigned char v1:7; short v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_Uc { unsigned char :0; unsigned char v1:7; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_Ui { unsigned char :0; unsigned char v1:7; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_Ul { unsigned char :0; unsigned char v1:7; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_Us { unsigned char :0; unsigned char v1:7; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu7c_Vp { unsigned char :0; unsigned char v1:7; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu7i { unsigned char :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu0c { unsigned char :0; unsigned int v1:7; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu0i { unsigned char :0; unsigned int v1:7; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu0ll { unsigned char :0; unsigned int v1:7; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu0s { unsigned char :0; unsigned int v1:7; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu15i { unsigned char :0; unsigned int v1:7; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu15ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu15s { unsigned char :0; unsigned int v1:7; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu16i { unsigned char :0; unsigned int v1:7; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu16ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu16s { unsigned char :0; unsigned int v1:7; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu17i { unsigned char :0; unsigned int v1:7; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu17ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu1c { unsigned char :0; unsigned int v1:7; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu1i { unsigned char :0; unsigned int v1:7; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu1ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu1s { unsigned char :0; unsigned int v1:7; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu31i { unsigned char :0; unsigned int v1:7; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu31ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu32i { unsigned char :0; unsigned int v1:7; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu32ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu33 { unsigned char :0; unsigned int v1:7; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu7c { unsigned char :0; unsigned int v1:7; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu7i { unsigned char :0; unsigned int v1:7; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu7ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu7s { unsigned char :0; unsigned int v1:7; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu8c { unsigned char :0; unsigned int v1:7; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu8i { unsigned char :0; unsigned int v1:7; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu8ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu8s { unsigned char :0; unsigned int v1:7; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu9i { unsigned char :0; unsigned int v1:7; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu9ll { unsigned char :0; unsigned int v1:7; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7i_BFu9s { unsigned char :0; unsigned int v1:7; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7i_C { unsigned char :0; unsigned int v1:7; char v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_D { unsigned char :0; unsigned int v1:7; double v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_F { unsigned char :0; unsigned int v1:7; float v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_I { unsigned char :0; unsigned int v1:7; int v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_Ip { unsigned char :0; unsigned int v1:7; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_L { unsigned char :0; unsigned int v1:7; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_S { unsigned char :0; unsigned int v1:7; short v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_Uc { unsigned char :0; unsigned int v1:7; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_Ui { unsigned char :0; unsigned int v1:7; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_Ul { unsigned char :0; unsigned int v1:7; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_Us { unsigned char :0; unsigned int v1:7; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu7i_Vp { unsigned char :0; unsigned int v1:7; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll { unsigned char :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu0c { unsigned char :0; unsigned long long v1:7; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu0i { unsigned char :0; unsigned long long v1:7; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu0ll { unsigned char :0; unsigned long long v1:7; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu0s { unsigned char :0; unsigned long long v1:7; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu15i { unsigned char :0; unsigned long long v1:7; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu15ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu15s { unsigned char :0; unsigned long long v1:7; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu16i { unsigned char :0; unsigned long long v1:7; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu16ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu16s { unsigned char :0; unsigned long long v1:7; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu17i { unsigned char :0; unsigned long long v1:7; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu17ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu1c { unsigned char :0; unsigned long long v1:7; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu1i { unsigned char :0; unsigned long long v1:7; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu1ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu1s { unsigned char :0; unsigned long long v1:7; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu31i { unsigned char :0; unsigned long long v1:7; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu31ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu32i { unsigned char :0; unsigned long long v1:7; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu32ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu33 { unsigned char :0; unsigned long long v1:7; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu7c { unsigned char :0; unsigned long long v1:7; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu7i { unsigned char :0; unsigned long long v1:7; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu7ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu7s { unsigned char :0; unsigned long long v1:7; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu8c { unsigned char :0; unsigned long long v1:7; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu8i { unsigned char :0; unsigned long long v1:7; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu8ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu8s { unsigned char :0; unsigned long long v1:7; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu9i { unsigned char :0; unsigned long long v1:7; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu9ll { unsigned char :0; unsigned long long v1:7; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7ll_BFu9s { unsigned char :0; unsigned long long v1:7; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7ll_C { unsigned char :0; unsigned long long v1:7; char v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_D { unsigned char :0; unsigned long long v1:7; double v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_F { unsigned char :0; unsigned long long v1:7; float v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_I { unsigned char :0; unsigned long long v1:7; int v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_Ip { unsigned char :0; unsigned long long v1:7; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_L { unsigned char :0; unsigned long long v1:7; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_S { unsigned char :0; unsigned long long v1:7; short v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_Uc { unsigned char :0; unsigned long long v1:7; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_Ui { unsigned char :0; unsigned long long v1:7; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_Ul { unsigned char :0; unsigned long long v1:7; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_Us { unsigned char :0; unsigned long long v1:7; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu7ll_Vp { unsigned char :0; unsigned long long v1:7; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu7s { unsigned char :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu0c { unsigned char :0; unsigned short v1:7; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu0i { unsigned char :0; unsigned short v1:7; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu0ll { unsigned char :0; unsigned short v1:7; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu0s { unsigned char :0; unsigned short v1:7; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu15i { unsigned char :0; unsigned short v1:7; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu15ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu15s { unsigned char :0; unsigned short v1:7; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu16i { unsigned char :0; unsigned short v1:7; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu16ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu16s { unsigned char :0; unsigned short v1:7; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu17i { unsigned char :0; unsigned short v1:7; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu17ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu1c { unsigned char :0; unsigned short v1:7; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu1i { unsigned char :0; unsigned short v1:7; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu1ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu1s { unsigned char :0; unsigned short v1:7; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu31i { unsigned char :0; unsigned short v1:7; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu31ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu32i { unsigned char :0; unsigned short v1:7; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu32ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu33 { unsigned char :0; unsigned short v1:7; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu7c { unsigned char :0; unsigned short v1:7; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu7i { unsigned char :0; unsigned short v1:7; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu7ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu7s { unsigned char :0; unsigned short v1:7; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu8c { unsigned char :0; unsigned short v1:7; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu8i { unsigned char :0; unsigned short v1:7; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu8ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu8s { unsigned char :0; unsigned short v1:7; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu9i { unsigned char :0; unsigned short v1:7; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu9ll { unsigned char :0; unsigned short v1:7; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7s_BFu9s { unsigned char :0; unsigned short v1:7; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu7s_C { unsigned char :0; unsigned short v1:7; char v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_D { unsigned char :0; unsigned short v1:7; double v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_F { unsigned char :0; unsigned short v1:7; float v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_I { unsigned char :0; unsigned short v1:7; int v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_Ip { unsigned char :0; unsigned short v1:7; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_L { unsigned char :0; unsigned short v1:7; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_S { unsigned char :0; unsigned short v1:7; short v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_Uc { unsigned char :0; unsigned short v1:7; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_Ui { unsigned char :0; unsigned short v1:7; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_Ul { unsigned char :0; unsigned short v1:7; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_Us { unsigned char :0; unsigned short v1:7; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu7s_Vp { unsigned char :0; unsigned short v1:7; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu8c { unsigned char :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu0c { unsigned char :0; unsigned char v1:8; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu0i { unsigned char :0; unsigned char v1:8; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu0ll { unsigned char :0; unsigned char v1:8; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu0s { unsigned char :0; unsigned char v1:8; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu15i { unsigned char :0; unsigned char v1:8; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu15ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu15s { unsigned char :0; unsigned char v1:8; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu16i { unsigned char :0; unsigned char v1:8; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu16ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu16s { unsigned char :0; unsigned char v1:8; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu17i { unsigned char :0; unsigned char v1:8; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu17ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu1c { unsigned char :0; unsigned char v1:8; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu1i { unsigned char :0; unsigned char v1:8; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu1ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu1s { unsigned char :0; unsigned char v1:8; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu31i { unsigned char :0; unsigned char v1:8; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu31ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu32i { unsigned char :0; unsigned char v1:8; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu32ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu33 { unsigned char :0; unsigned char v1:8; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu7c { unsigned char :0; unsigned char v1:8; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu7i { unsigned char :0; unsigned char v1:8; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu7ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu7s { unsigned char :0; unsigned char v1:8; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu8c { unsigned char :0; unsigned char v1:8; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu8i { unsigned char :0; unsigned char v1:8; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu8ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu8s { unsigned char :0; unsigned char v1:8; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu9i { unsigned char :0; unsigned char v1:8; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu9ll { unsigned char :0; unsigned char v1:8; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8c_BFu9s { unsigned char :0; unsigned char v1:8; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8c_C { unsigned char :0; unsigned char v1:8; char v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_D { unsigned char :0; unsigned char v1:8; double v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_F { unsigned char :0; unsigned char v1:8; float v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_I { unsigned char :0; unsigned char v1:8; int v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_Ip { unsigned char :0; unsigned char v1:8; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_L { unsigned char :0; unsigned char v1:8; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_S { unsigned char :0; unsigned char v1:8; short v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_Uc { unsigned char :0; unsigned char v1:8; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_Ui { unsigned char :0; unsigned char v1:8; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_Ul { unsigned char :0; unsigned char v1:8; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_Us { unsigned char :0; unsigned char v1:8; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu8c_Vp { unsigned char :0; unsigned char v1:8; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu8i { unsigned char :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu0c { unsigned char :0; unsigned int v1:8; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu0i { unsigned char :0; unsigned int v1:8; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu0ll { unsigned char :0; unsigned int v1:8; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu0s { unsigned char :0; unsigned int v1:8; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu15i { unsigned char :0; unsigned int v1:8; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu15ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu15s { unsigned char :0; unsigned int v1:8; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu16i { unsigned char :0; unsigned int v1:8; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu16ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu16s { unsigned char :0; unsigned int v1:8; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu17i { unsigned char :0; unsigned int v1:8; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu17ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu1c { unsigned char :0; unsigned int v1:8; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu1i { unsigned char :0; unsigned int v1:8; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu1ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu1s { unsigned char :0; unsigned int v1:8; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu31i { unsigned char :0; unsigned int v1:8; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu31ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu32i { unsigned char :0; unsigned int v1:8; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu32ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu33 { unsigned char :0; unsigned int v1:8; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu7c { unsigned char :0; unsigned int v1:8; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu7i { unsigned char :0; unsigned int v1:8; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu7ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu7s { unsigned char :0; unsigned int v1:8; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu8c { unsigned char :0; unsigned int v1:8; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu8i { unsigned char :0; unsigned int v1:8; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu8ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu8s { unsigned char :0; unsigned int v1:8; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu9i { unsigned char :0; unsigned int v1:8; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu9ll { unsigned char :0; unsigned int v1:8; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8i_BFu9s { unsigned char :0; unsigned int v1:8; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8i_C { unsigned char :0; unsigned int v1:8; char v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_D { unsigned char :0; unsigned int v1:8; double v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_F { unsigned char :0; unsigned int v1:8; float v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_I { unsigned char :0; unsigned int v1:8; int v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_Ip { unsigned char :0; unsigned int v1:8; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_L { unsigned char :0; unsigned int v1:8; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_S { unsigned char :0; unsigned int v1:8; short v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_Uc { unsigned char :0; unsigned int v1:8; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_Ui { unsigned char :0; unsigned int v1:8; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_Ul { unsigned char :0; unsigned int v1:8; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_Us { unsigned char :0; unsigned int v1:8; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu8i_Vp { unsigned char :0; unsigned int v1:8; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll { unsigned char :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu0c { unsigned char :0; unsigned long long v1:8; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu0i { unsigned char :0; unsigned long long v1:8; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu0ll { unsigned char :0; unsigned long long v1:8; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu0s { unsigned char :0; unsigned long long v1:8; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu15i { unsigned char :0; unsigned long long v1:8; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu15ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu15s { unsigned char :0; unsigned long long v1:8; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu16i { unsigned char :0; unsigned long long v1:8; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu16ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu16s { unsigned char :0; unsigned long long v1:8; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu17i { unsigned char :0; unsigned long long v1:8; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu17ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu1c { unsigned char :0; unsigned long long v1:8; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu1i { unsigned char :0; unsigned long long v1:8; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu1ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu1s { unsigned char :0; unsigned long long v1:8; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu31i { unsigned char :0; unsigned long long v1:8; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu31ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu32i { unsigned char :0; unsigned long long v1:8; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu32ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu33 { unsigned char :0; unsigned long long v1:8; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu7c { unsigned char :0; unsigned long long v1:8; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu7i { unsigned char :0; unsigned long long v1:8; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu7ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu7s { unsigned char :0; unsigned long long v1:8; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu8c { unsigned char :0; unsigned long long v1:8; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu8i { unsigned char :0; unsigned long long v1:8; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu8ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu8s { unsigned char :0; unsigned long long v1:8; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu9i { unsigned char :0; unsigned long long v1:8; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu9ll { unsigned char :0; unsigned long long v1:8; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8ll_BFu9s { unsigned char :0; unsigned long long v1:8; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8ll_C { unsigned char :0; unsigned long long v1:8; char v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_D { unsigned char :0; unsigned long long v1:8; double v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_F { unsigned char :0; unsigned long long v1:8; float v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_I { unsigned char :0; unsigned long long v1:8; int v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_Ip { unsigned char :0; unsigned long long v1:8; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_L { unsigned char :0; unsigned long long v1:8; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_S { unsigned char :0; unsigned long long v1:8; short v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_Uc { unsigned char :0; unsigned long long v1:8; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_Ui { unsigned char :0; unsigned long long v1:8; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_Ul { unsigned char :0; unsigned long long v1:8; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_Us { unsigned char :0; unsigned long long v1:8; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu8ll_Vp { unsigned char :0; unsigned long long v1:8; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu8s { unsigned char :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu0c { unsigned char :0; unsigned short v1:8; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu0i { unsigned char :0; unsigned short v1:8; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu0ll { unsigned char :0; unsigned short v1:8; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu0s { unsigned char :0; unsigned short v1:8; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu15i { unsigned char :0; unsigned short v1:8; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu15ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu15s { unsigned char :0; unsigned short v1:8; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu16i { unsigned char :0; unsigned short v1:8; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu16ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu16s { unsigned char :0; unsigned short v1:8; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu17i { unsigned char :0; unsigned short v1:8; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu17ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu1c { unsigned char :0; unsigned short v1:8; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu1i { unsigned char :0; unsigned short v1:8; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu1ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu1s { unsigned char :0; unsigned short v1:8; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu31i { unsigned char :0; unsigned short v1:8; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu31ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu32i { unsigned char :0; unsigned short v1:8; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu32ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu33 { unsigned char :0; unsigned short v1:8; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu7c { unsigned char :0; unsigned short v1:8; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu7i { unsigned char :0; unsigned short v1:8; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu7ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu7s { unsigned char :0; unsigned short v1:8; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu8c { unsigned char :0; unsigned short v1:8; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu8i { unsigned char :0; unsigned short v1:8; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu8ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu8s { unsigned char :0; unsigned short v1:8; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu9i { unsigned char :0; unsigned short v1:8; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu9ll { unsigned char :0; unsigned short v1:8; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8s_BFu9s { unsigned char :0; unsigned short v1:8; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu8s_C { unsigned char :0; unsigned short v1:8; char v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_D { unsigned char :0; unsigned short v1:8; double v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_F { unsigned char :0; unsigned short v1:8; float v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_I { unsigned char :0; unsigned short v1:8; int v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_Ip { unsigned char :0; unsigned short v1:8; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_L { unsigned char :0; unsigned short v1:8; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_S { unsigned char :0; unsigned short v1:8; short v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_Uc { unsigned char :0; unsigned short v1:8; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_Ui { unsigned char :0; unsigned short v1:8; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_Ul { unsigned char :0; unsigned short v1:8; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_Us { unsigned char :0; unsigned short v1:8; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu8s_Vp { unsigned char :0; unsigned short v1:8; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu9i { unsigned char :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu0c { unsigned char :0; unsigned int v1:9; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu0i { unsigned char :0; unsigned int v1:9; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu0ll { unsigned char :0; unsigned int v1:9; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu0s { unsigned char :0; unsigned int v1:9; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu15i { unsigned char :0; unsigned int v1:9; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu15ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu15s { unsigned char :0; unsigned int v1:9; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu16i { unsigned char :0; unsigned int v1:9; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu16ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu16s { unsigned char :0; unsigned int v1:9; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu17i { unsigned char :0; unsigned int v1:9; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu17ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu1c { unsigned char :0; unsigned int v1:9; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu1i { unsigned char :0; unsigned int v1:9; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu1ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu1s { unsigned char :0; unsigned int v1:9; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu31i { unsigned char :0; unsigned int v1:9; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu31ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu32i { unsigned char :0; unsigned int v1:9; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu32ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu33 { unsigned char :0; unsigned int v1:9; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu7c { unsigned char :0; unsigned int v1:9; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu7i { unsigned char :0; unsigned int v1:9; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu7ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu7s { unsigned char :0; unsigned int v1:9; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu8c { unsigned char :0; unsigned int v1:9; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu8i { unsigned char :0; unsigned int v1:9; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu8ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu8s { unsigned char :0; unsigned int v1:9; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu9i { unsigned char :0; unsigned int v1:9; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu9ll { unsigned char :0; unsigned int v1:9; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9i_BFu9s { unsigned char :0; unsigned int v1:9; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9i_C { unsigned char :0; unsigned int v1:9; char v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_D { unsigned char :0; unsigned int v1:9; double v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_F { unsigned char :0; unsigned int v1:9; float v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_I { unsigned char :0; unsigned int v1:9; int v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_Ip { unsigned char :0; unsigned int v1:9; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_L { unsigned char :0; unsigned int v1:9; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_S { unsigned char :0; unsigned int v1:9; short v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_Uc { unsigned char :0; unsigned int v1:9; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_Ui { unsigned char :0; unsigned int v1:9; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_Ul { unsigned char :0; unsigned int v1:9; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_Us { unsigned char :0; unsigned int v1:9; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu9i_Vp { unsigned char :0; unsigned int v1:9; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll { unsigned char :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu0c { unsigned char :0; unsigned long long v1:9; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu0i { unsigned char :0; unsigned long long v1:9; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu0ll { unsigned char :0; unsigned long long v1:9; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu0s { unsigned char :0; unsigned long long v1:9; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu15i { unsigned char :0; unsigned long long v1:9; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu15ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu15s { unsigned char :0; unsigned long long v1:9; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu16i { unsigned char :0; unsigned long long v1:9; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu16ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu16s { unsigned char :0; unsigned long long v1:9; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu17i { unsigned char :0; unsigned long long v1:9; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu17ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu1c { unsigned char :0; unsigned long long v1:9; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu1i { unsigned char :0; unsigned long long v1:9; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu1ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu1s { unsigned char :0; unsigned long long v1:9; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu31i { unsigned char :0; unsigned long long v1:9; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu31ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu32i { unsigned char :0; unsigned long long v1:9; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu32ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu33 { unsigned char :0; unsigned long long v1:9; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu7c { unsigned char :0; unsigned long long v1:9; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu7i { unsigned char :0; unsigned long long v1:9; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu7ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu7s { unsigned char :0; unsigned long long v1:9; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu8c { unsigned char :0; unsigned long long v1:9; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu8i { unsigned char :0; unsigned long long v1:9; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu8ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu8s { unsigned char :0; unsigned long long v1:9; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu9i { unsigned char :0; unsigned long long v1:9; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu9ll { unsigned char :0; unsigned long long v1:9; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9ll_BFu9s { unsigned char :0; unsigned long long v1:9; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9ll_C { unsigned char :0; unsigned long long v1:9; char v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_D { unsigned char :0; unsigned long long v1:9; double v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_F { unsigned char :0; unsigned long long v1:9; float v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_I { unsigned char :0; unsigned long long v1:9; int v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_Ip { unsigned char :0; unsigned long long v1:9; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_L { unsigned char :0; unsigned long long v1:9; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_S { unsigned char :0; unsigned long long v1:9; short v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_Uc { unsigned char :0; unsigned long long v1:9; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_Ui { unsigned char :0; unsigned long long v1:9; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_Ul { unsigned char :0; unsigned long long v1:9; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_Us { unsigned char :0; unsigned long long v1:9; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu9ll_Vp { unsigned char :0; unsigned long long v1:9; void * v2; };
struct __attribute__((packed)) aBFu0c_BFu9s { unsigned char :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu0c { unsigned char :0; unsigned short v1:9; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu0i { unsigned char :0; unsigned short v1:9; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu0ll { unsigned char :0; unsigned short v1:9; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu0s { unsigned char :0; unsigned short v1:9; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu15i { unsigned char :0; unsigned short v1:9; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu15ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu15s { unsigned char :0; unsigned short v1:9; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu16i { unsigned char :0; unsigned short v1:9; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu16ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu16s { unsigned char :0; unsigned short v1:9; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu17i { unsigned char :0; unsigned short v1:9; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu17ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu1c { unsigned char :0; unsigned short v1:9; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu1i { unsigned char :0; unsigned short v1:9; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu1ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu1s { unsigned char :0; unsigned short v1:9; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu31i { unsigned char :0; unsigned short v1:9; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu31ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu32i { unsigned char :0; unsigned short v1:9; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu32ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu33 { unsigned char :0; unsigned short v1:9; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu7c { unsigned char :0; unsigned short v1:9; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu7i { unsigned char :0; unsigned short v1:9; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu7ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu7s { unsigned char :0; unsigned short v1:9; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu8c { unsigned char :0; unsigned short v1:9; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu8i { unsigned char :0; unsigned short v1:9; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu8ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu8s { unsigned char :0; unsigned short v1:9; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu9i { unsigned char :0; unsigned short v1:9; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu9ll { unsigned char :0; unsigned short v1:9; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9s_BFu9s { unsigned char :0; unsigned short v1:9; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_BFu9s_C { unsigned char :0; unsigned short v1:9; char v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_D { unsigned char :0; unsigned short v1:9; double v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_F { unsigned char :0; unsigned short v1:9; float v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_I { unsigned char :0; unsigned short v1:9; int v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_Ip { unsigned char :0; unsigned short v1:9; int * v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_L { unsigned char :0; unsigned short v1:9; long long v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_S { unsigned char :0; unsigned short v1:9; short v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_Uc { unsigned char :0; unsigned short v1:9; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_Ui { unsigned char :0; unsigned short v1:9; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_Ul { unsigned char :0; unsigned short v1:9; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_Us { unsigned char :0; unsigned short v1:9; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_BFu9s_Vp { unsigned char :0; unsigned short v1:9; void * v2; };
struct __attribute__((packed)) aBFu0c_C { unsigned char :0; char v1; };
struct __attribute__((packed)) aBFu0c_C_BFu0c { unsigned char :0; char v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_C_BFu0i { unsigned char :0; char v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_C_BFu0ll { unsigned char :0; char v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_C_BFu0s { unsigned char :0; char v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_C_BFu15i { unsigned char :0; char v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_C_BFu15ll { unsigned char :0; char v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_C_BFu15s { unsigned char :0; char v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_C_BFu16i { unsigned char :0; char v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_C_BFu16ll { unsigned char :0; char v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_C_BFu16s { unsigned char :0; char v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_C_BFu17i { unsigned char :0; char v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_C_BFu17ll { unsigned char :0; char v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_C_BFu1c { unsigned char :0; char v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_C_BFu1i { unsigned char :0; char v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_C_BFu1ll { unsigned char :0; char v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_C_BFu1s { unsigned char :0; char v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_C_BFu31i { unsigned char :0; char v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_C_BFu31ll { unsigned char :0; char v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_C_BFu32i { unsigned char :0; char v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_C_BFu32ll { unsigned char :0; char v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_C_BFu33 { unsigned char :0; char v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_C_BFu7c { unsigned char :0; char v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_C_BFu7i { unsigned char :0; char v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_C_BFu7ll { unsigned char :0; char v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_C_BFu7s { unsigned char :0; char v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_C_BFu8c { unsigned char :0; char v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_C_BFu8i { unsigned char :0; char v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_C_BFu8ll { unsigned char :0; char v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_C_BFu8s { unsigned char :0; char v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_C_BFu9i { unsigned char :0; char v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_C_BFu9ll { unsigned char :0; char v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_C_BFu9s { unsigned char :0; char v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_C_C { unsigned char :0; char v1; char v2; };
struct __attribute__((packed)) aBFu0c_C_D { unsigned char :0; char v1; double v2; };
struct __attribute__((packed)) aBFu0c_C_F { unsigned char :0; char v1; float v2; };
struct __attribute__((packed)) aBFu0c_C_I { unsigned char :0; char v1; int v2; };
struct __attribute__((packed)) aBFu0c_C_Ip { unsigned char :0; char v1; int * v2; };
struct __attribute__((packed)) aBFu0c_C_L { unsigned char :0; char v1; long long v2; };
struct __attribute__((packed)) aBFu0c_C_S { unsigned char :0; char v1; short v2; };
struct __attribute__((packed)) aBFu0c_C_Uc { unsigned char :0; char v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_C_Ui { unsigned char :0; char v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_C_Ul { unsigned char :0; char v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_C_Us { unsigned char :0; char v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_C_Vp { unsigned char :0; char v1; void * v2; };
struct __attribute__((packed)) aBFu0c_D { unsigned char :0; double v1; };
struct __attribute__((packed)) aBFu0c_D_BFu0c { unsigned char :0; double v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_D_BFu0i { unsigned char :0; double v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_D_BFu0ll { unsigned char :0; double v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_D_BFu0s { unsigned char :0; double v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_D_BFu15i { unsigned char :0; double v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_D_BFu15ll { unsigned char :0; double v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_D_BFu15s { unsigned char :0; double v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_D_BFu16i { unsigned char :0; double v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_D_BFu16ll { unsigned char :0; double v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_D_BFu16s { unsigned char :0; double v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_D_BFu17i { unsigned char :0; double v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_D_BFu17ll { unsigned char :0; double v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_D_BFu1c { unsigned char :0; double v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_D_BFu1i { unsigned char :0; double v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_D_BFu1ll { unsigned char :0; double v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_D_BFu1s { unsigned char :0; double v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_D_BFu31i { unsigned char :0; double v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_D_BFu31ll { unsigned char :0; double v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_D_BFu32i { unsigned char :0; double v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_D_BFu32ll { unsigned char :0; double v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_D_BFu33 { unsigned char :0; double v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_D_BFu7c { unsigned char :0; double v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_D_BFu7i { unsigned char :0; double v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_D_BFu7ll { unsigned char :0; double v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_D_BFu7s { unsigned char :0; double v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_D_BFu8c { unsigned char :0; double v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_D_BFu8i { unsigned char :0; double v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_D_BFu8ll { unsigned char :0; double v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_D_BFu8s { unsigned char :0; double v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_D_BFu9i { unsigned char :0; double v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_D_BFu9ll { unsigned char :0; double v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_D_BFu9s { unsigned char :0; double v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_D_C { unsigned char :0; double v1; char v2; };
struct __attribute__((packed)) aBFu0c_D_D { unsigned char :0; double v1; double v2; };
struct __attribute__((packed)) aBFu0c_D_F { unsigned char :0; double v1; float v2; };
struct __attribute__((packed)) aBFu0c_D_I { unsigned char :0; double v1; int v2; };
struct __attribute__((packed)) aBFu0c_D_Ip { unsigned char :0; double v1; int * v2; };
struct __attribute__((packed)) aBFu0c_D_L { unsigned char :0; double v1; long long v2; };
struct __attribute__((packed)) aBFu0c_D_S { unsigned char :0; double v1; short v2; };
struct __attribute__((packed)) aBFu0c_D_Uc { unsigned char :0; double v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_D_Ui { unsigned char :0; double v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_D_Ul { unsigned char :0; double v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_D_Us { unsigned char :0; double v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_D_Vp { unsigned char :0; double v1; void * v2; };
struct __attribute__((packed)) aBFu0c_F { unsigned char :0; float v1; };
struct __attribute__((packed)) aBFu0c_F_BFu0c { unsigned char :0; float v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_F_BFu0i { unsigned char :0; float v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_F_BFu0ll { unsigned char :0; float v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_F_BFu0s { unsigned char :0; float v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_F_BFu15i { unsigned char :0; float v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_F_BFu15ll { unsigned char :0; float v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_F_BFu15s { unsigned char :0; float v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_F_BFu16i { unsigned char :0; float v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_F_BFu16ll { unsigned char :0; float v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_F_BFu16s { unsigned char :0; float v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_F_BFu17i { unsigned char :0; float v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_F_BFu17ll { unsigned char :0; float v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_F_BFu1c { unsigned char :0; float v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_F_BFu1i { unsigned char :0; float v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_F_BFu1ll { unsigned char :0; float v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_F_BFu1s { unsigned char :0; float v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_F_BFu31i { unsigned char :0; float v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_F_BFu31ll { unsigned char :0; float v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_F_BFu32i { unsigned char :0; float v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_F_BFu32ll { unsigned char :0; float v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_F_BFu33 { unsigned char :0; float v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_F_BFu7c { unsigned char :0; float v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_F_BFu7i { unsigned char :0; float v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_F_BFu7ll { unsigned char :0; float v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_F_BFu7s { unsigned char :0; float v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_F_BFu8c { unsigned char :0; float v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_F_BFu8i { unsigned char :0; float v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_F_BFu8ll { unsigned char :0; float v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_F_BFu8s { unsigned char :0; float v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_F_BFu9i { unsigned char :0; float v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_F_BFu9ll { unsigned char :0; float v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_F_BFu9s { unsigned char :0; float v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_F_C { unsigned char :0; float v1; char v2; };
struct __attribute__((packed)) aBFu0c_F_D { unsigned char :0; float v1; double v2; };
struct __attribute__((packed)) aBFu0c_F_F { unsigned char :0; float v1; float v2; };
struct __attribute__((packed)) aBFu0c_F_I { unsigned char :0; float v1; int v2; };
struct __attribute__((packed)) aBFu0c_F_Ip { unsigned char :0; float v1; int * v2; };
struct __attribute__((packed)) aBFu0c_F_L { unsigned char :0; float v1; long long v2; };
struct __attribute__((packed)) aBFu0c_F_S { unsigned char :0; float v1; short v2; };
struct __attribute__((packed)) aBFu0c_F_Uc { unsigned char :0; float v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_F_Ui { unsigned char :0; float v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_F_Ul { unsigned char :0; float v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_F_Us { unsigned char :0; float v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_F_Vp { unsigned char :0; float v1; void * v2; };
struct __attribute__((packed)) aBFu0c_I { unsigned char :0; int v1; };
struct __attribute__((packed)) aBFu0c_I_BFu0c { unsigned char :0; int v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_I_BFu0i { unsigned char :0; int v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_I_BFu0ll { unsigned char :0; int v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_I_BFu0s { unsigned char :0; int v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_I_BFu15i { unsigned char :0; int v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_I_BFu15ll { unsigned char :0; int v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_I_BFu15s { unsigned char :0; int v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_I_BFu16i { unsigned char :0; int v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_I_BFu16ll { unsigned char :0; int v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_I_BFu16s { unsigned char :0; int v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_I_BFu17i { unsigned char :0; int v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_I_BFu17ll { unsigned char :0; int v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_I_BFu1c { unsigned char :0; int v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_I_BFu1i { unsigned char :0; int v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_I_BFu1ll { unsigned char :0; int v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_I_BFu1s { unsigned char :0; int v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_I_BFu31i { unsigned char :0; int v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_I_BFu31ll { unsigned char :0; int v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_I_BFu32i { unsigned char :0; int v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_I_BFu32ll { unsigned char :0; int v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_I_BFu33 { unsigned char :0; int v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_I_BFu7c { unsigned char :0; int v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_I_BFu7i { unsigned char :0; int v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_I_BFu7ll { unsigned char :0; int v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_I_BFu7s { unsigned char :0; int v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_I_BFu8c { unsigned char :0; int v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_I_BFu8i { unsigned char :0; int v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_I_BFu8ll { unsigned char :0; int v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_I_BFu8s { unsigned char :0; int v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_I_BFu9i { unsigned char :0; int v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_I_BFu9ll { unsigned char :0; int v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_I_BFu9s { unsigned char :0; int v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_I_C { unsigned char :0; int v1; char v2; };
struct __attribute__((packed)) aBFu0c_I_D { unsigned char :0; int v1; double v2; };
struct __attribute__((packed)) aBFu0c_I_F { unsigned char :0; int v1; float v2; };
struct __attribute__((packed)) aBFu0c_I_I { unsigned char :0; int v1; int v2; };
struct __attribute__((packed)) aBFu0c_I_Ip { unsigned char :0; int v1; int * v2; };
struct __attribute__((packed)) aBFu0c_I_L { unsigned char :0; int v1; long long v2; };
struct __attribute__((packed)) aBFu0c_I_S { unsigned char :0; int v1; short v2; };
struct __attribute__((packed)) aBFu0c_I_Uc { unsigned char :0; int v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_I_Ui { unsigned char :0; int v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_I_Ul { unsigned char :0; int v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_I_Us { unsigned char :0; int v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_I_Vp { unsigned char :0; int v1; void * v2; };
struct __attribute__((packed)) aBFu0c_Ip { unsigned char :0; int * v1; };
struct __attribute__((packed)) aBFu0c_Ip_BFu0c { unsigned char :0; int * v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_Ip_BFu0i { unsigned char :0; int * v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_Ip_BFu0ll { unsigned char :0; int * v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_Ip_BFu0s { unsigned char :0; int * v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_Ip_BFu15i { unsigned char :0; int * v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_Ip_BFu15ll { unsigned char :0; int * v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_Ip_BFu15s { unsigned char :0; int * v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_Ip_BFu16i { unsigned char :0; int * v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_Ip_BFu16ll { unsigned char :0; int * v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_Ip_BFu16s { unsigned char :0; int * v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_Ip_BFu17i { unsigned char :0; int * v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_Ip_BFu17ll { unsigned char :0; int * v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_Ip_BFu1c { unsigned char :0; int * v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_Ip_BFu1i { unsigned char :0; int * v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_Ip_BFu1ll { unsigned char :0; int * v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_Ip_BFu1s { unsigned char :0; int * v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_Ip_BFu31i { unsigned char :0; int * v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_Ip_BFu31ll { unsigned char :0; int * v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_Ip_BFu32i { unsigned char :0; int * v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_Ip_BFu32ll { unsigned char :0; int * v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_Ip_BFu33 { unsigned char :0; int * v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_Ip_BFu7c { unsigned char :0; int * v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_Ip_BFu7i { unsigned char :0; int * v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_Ip_BFu7ll { unsigned char :0; int * v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_Ip_BFu7s { unsigned char :0; int * v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_Ip_BFu8c { unsigned char :0; int * v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_Ip_BFu8i { unsigned char :0; int * v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_Ip_BFu8ll { unsigned char :0; int * v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_Ip_BFu8s { unsigned char :0; int * v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_Ip_BFu9i { unsigned char :0; int * v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_Ip_BFu9ll { unsigned char :0; int * v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_Ip_BFu9s { unsigned char :0; int * v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_Ip_C { unsigned char :0; int * v1; char v2; };
struct __attribute__((packed)) aBFu0c_Ip_D { unsigned char :0; int * v1; double v2; };
struct __attribute__((packed)) aBFu0c_Ip_F { unsigned char :0; int * v1; float v2; };
struct __attribute__((packed)) aBFu0c_Ip_I { unsigned char :0; int * v1; int v2; };
struct __attribute__((packed)) aBFu0c_Ip_Ip { unsigned char :0; int * v1; int * v2; };
struct __attribute__((packed)) aBFu0c_Ip_L { unsigned char :0; int * v1; long long v2; };
struct __attribute__((packed)) aBFu0c_Ip_S { unsigned char :0; int * v1; short v2; };
struct __attribute__((packed)) aBFu0c_Ip_Uc { unsigned char :0; int * v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_Ip_Ui { unsigned char :0; int * v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_Ip_Ul { unsigned char :0; int * v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_Ip_Us { unsigned char :0; int * v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_Ip_Vp { unsigned char :0; int * v1; void * v2; };
struct __attribute__((packed)) aBFu0c_L { unsigned char :0; long long v1; };
struct __attribute__((packed)) aBFu0c_L_BFu0c { unsigned char :0; long long v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_L_BFu0i { unsigned char :0; long long v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_L_BFu0ll { unsigned char :0; long long v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_L_BFu0s { unsigned char :0; long long v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_L_BFu15i { unsigned char :0; long long v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_L_BFu15ll { unsigned char :0; long long v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_L_BFu15s { unsigned char :0; long long v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_L_BFu16i { unsigned char :0; long long v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_L_BFu16ll { unsigned char :0; long long v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_L_BFu16s { unsigned char :0; long long v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_L_BFu17i { unsigned char :0; long long v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_L_BFu17ll { unsigned char :0; long long v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_L_BFu1c { unsigned char :0; long long v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_L_BFu1i { unsigned char :0; long long v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_L_BFu1ll { unsigned char :0; long long v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_L_BFu1s { unsigned char :0; long long v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_L_BFu31i { unsigned char :0; long long v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_L_BFu31ll { unsigned char :0; long long v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_L_BFu32i { unsigned char :0; long long v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_L_BFu32ll { unsigned char :0; long long v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_L_BFu33 { unsigned char :0; long long v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_L_BFu7c { unsigned char :0; long long v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_L_BFu7i { unsigned char :0; long long v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_L_BFu7ll { unsigned char :0; long long v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_L_BFu7s { unsigned char :0; long long v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_L_BFu8c { unsigned char :0; long long v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_L_BFu8i { unsigned char :0; long long v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_L_BFu8ll { unsigned char :0; long long v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_L_BFu8s { unsigned char :0; long long v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_L_BFu9i { unsigned char :0; long long v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_L_BFu9ll { unsigned char :0; long long v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_L_BFu9s { unsigned char :0; long long v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_L_C { unsigned char :0; long long v1; char v2; };
struct __attribute__((packed)) aBFu0c_L_D { unsigned char :0; long long v1; double v2; };
struct __attribute__((packed)) aBFu0c_L_F { unsigned char :0; long long v1; float v2; };
struct __attribute__((packed)) aBFu0c_L_I { unsigned char :0; long long v1; int v2; };
struct __attribute__((packed)) aBFu0c_L_Ip { unsigned char :0; long long v1; int * v2; };
struct __attribute__((packed)) aBFu0c_L_L { unsigned char :0; long long v1; long long v2; };
struct __attribute__((packed)) aBFu0c_L_S { unsigned char :0; long long v1; short v2; };
struct __attribute__((packed)) aBFu0c_L_Uc { unsigned char :0; long long v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_L_Ui { unsigned char :0; long long v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_L_Ul { unsigned char :0; long long v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_L_Us { unsigned char :0; long long v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_L_Vp { unsigned char :0; long long v1; void * v2; };
struct __attribute__((packed)) aBFu0c_S { unsigned char :0; short v1; };
struct __attribute__((packed)) aBFu0c_S_BFu0c { unsigned char :0; short v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_S_BFu0i { unsigned char :0; short v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_S_BFu0ll { unsigned char :0; short v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_S_BFu0s { unsigned char :0; short v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_S_BFu15i { unsigned char :0; short v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_S_BFu15ll { unsigned char :0; short v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_S_BFu15s { unsigned char :0; short v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_S_BFu16i { unsigned char :0; short v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_S_BFu16ll { unsigned char :0; short v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_S_BFu16s { unsigned char :0; short v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_S_BFu17i { unsigned char :0; short v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_S_BFu17ll { unsigned char :0; short v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_S_BFu1c { unsigned char :0; short v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_S_BFu1i { unsigned char :0; short v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_S_BFu1ll { unsigned char :0; short v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_S_BFu1s { unsigned char :0; short v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_S_BFu31i { unsigned char :0; short v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_S_BFu31ll { unsigned char :0; short v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_S_BFu32i { unsigned char :0; short v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_S_BFu32ll { unsigned char :0; short v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_S_BFu33 { unsigned char :0; short v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_S_BFu7c { unsigned char :0; short v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_S_BFu7i { unsigned char :0; short v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_S_BFu7ll { unsigned char :0; short v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_S_BFu7s { unsigned char :0; short v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_S_BFu8c { unsigned char :0; short v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_S_BFu8i { unsigned char :0; short v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_S_BFu8ll { unsigned char :0; short v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_S_BFu8s { unsigned char :0; short v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_S_BFu9i { unsigned char :0; short v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_S_BFu9ll { unsigned char :0; short v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_S_BFu9s { unsigned char :0; short v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_S_C { unsigned char :0; short v1; char v2; };
struct __attribute__((packed)) aBFu0c_S_D { unsigned char :0; short v1; double v2; };
struct __attribute__((packed)) aBFu0c_S_F { unsigned char :0; short v1; float v2; };
struct __attribute__((packed)) aBFu0c_S_I { unsigned char :0; short v1; int v2; };
struct __attribute__((packed)) aBFu0c_S_Ip { unsigned char :0; short v1; int * v2; };
struct __attribute__((packed)) aBFu0c_S_L { unsigned char :0; short v1; long long v2; };
struct __attribute__((packed)) aBFu0c_S_S { unsigned char :0; short v1; short v2; };
struct __attribute__((packed)) aBFu0c_S_Uc { unsigned char :0; short v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_S_Ui { unsigned char :0; short v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_S_Ul { unsigned char :0; short v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_S_Us { unsigned char :0; short v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_S_Vp { unsigned char :0; short v1; void * v2; };
struct __attribute__((packed)) aBFu0c_Uc { unsigned char :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0c_Uc_BFu0c { unsigned char :0; unsigned char v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_Uc_BFu0i { unsigned char :0; unsigned char v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_Uc_BFu0ll { unsigned char :0; unsigned char v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_Uc_BFu0s { unsigned char :0; unsigned char v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_Uc_BFu15i { unsigned char :0; unsigned char v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_Uc_BFu15ll { unsigned char :0; unsigned char v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_Uc_BFu15s { unsigned char :0; unsigned char v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_Uc_BFu16i { unsigned char :0; unsigned char v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_Uc_BFu16ll { unsigned char :0; unsigned char v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_Uc_BFu16s { unsigned char :0; unsigned char v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_Uc_BFu17i { unsigned char :0; unsigned char v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_Uc_BFu17ll { unsigned char :0; unsigned char v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_Uc_BFu1c { unsigned char :0; unsigned char v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_Uc_BFu1i { unsigned char :0; unsigned char v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_Uc_BFu1ll { unsigned char :0; unsigned char v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_Uc_BFu1s { unsigned char :0; unsigned char v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_Uc_BFu31i { unsigned char :0; unsigned char v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_Uc_BFu31ll { unsigned char :0; unsigned char v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_Uc_BFu32i { unsigned char :0; unsigned char v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_Uc_BFu32ll { unsigned char :0; unsigned char v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_Uc_BFu33 { unsigned char :0; unsigned char v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_Uc_BFu7c { unsigned char :0; unsigned char v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_Uc_BFu7i { unsigned char :0; unsigned char v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_Uc_BFu7ll { unsigned char :0; unsigned char v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_Uc_BFu7s { unsigned char :0; unsigned char v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_Uc_BFu8c { unsigned char :0; unsigned char v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_Uc_BFu8i { unsigned char :0; unsigned char v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_Uc_BFu8ll { unsigned char :0; unsigned char v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_Uc_BFu8s { unsigned char :0; unsigned char v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_Uc_BFu9i { unsigned char :0; unsigned char v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_Uc_BFu9ll { unsigned char :0; unsigned char v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_Uc_BFu9s { unsigned char :0; unsigned char v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_Uc_C { unsigned char :0; unsigned char v1; char v2; };
struct __attribute__((packed)) aBFu0c_Uc_D { unsigned char :0; unsigned char v1; double v2; };
struct __attribute__((packed)) aBFu0c_Uc_F { unsigned char :0; unsigned char v1; float v2; };
struct __attribute__((packed)) aBFu0c_Uc_I { unsigned char :0; unsigned char v1; int v2; };
struct __attribute__((packed)) aBFu0c_Uc_Ip { unsigned char :0; unsigned char v1; int * v2; };
struct __attribute__((packed)) aBFu0c_Uc_L { unsigned char :0; unsigned char v1; long long v2; };
struct __attribute__((packed)) aBFu0c_Uc_S { unsigned char :0; unsigned char v1; short v2; };
struct __attribute__((packed)) aBFu0c_Uc_Uc { unsigned char :0; unsigned char v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_Uc_Ui { unsigned char :0; unsigned char v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_Uc_Ul { unsigned char :0; unsigned char v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_Uc_Us { unsigned char :0; unsigned char v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_Uc_Vp { unsigned char :0; unsigned char v1; void * v2; };
struct __attribute__((packed)) aBFu0c_Ui { unsigned char :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0c_Ui_BFu0c { unsigned char :0; unsigned int v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_Ui_BFu0i { unsigned char :0; unsigned int v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_Ui_BFu0ll { unsigned char :0; unsigned int v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_Ui_BFu0s { unsigned char :0; unsigned int v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_Ui_BFu15i { unsigned char :0; unsigned int v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_Ui_BFu15ll { unsigned char :0; unsigned int v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_Ui_BFu15s { unsigned char :0; unsigned int v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_Ui_BFu16i { unsigned char :0; unsigned int v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_Ui_BFu16ll { unsigned char :0; unsigned int v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_Ui_BFu16s { unsigned char :0; unsigned int v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_Ui_BFu17i { unsigned char :0; unsigned int v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_Ui_BFu17ll { unsigned char :0; unsigned int v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_Ui_BFu1c { unsigned char :0; unsigned int v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_Ui_BFu1i { unsigned char :0; unsigned int v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_Ui_BFu1ll { unsigned char :0; unsigned int v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_Ui_BFu1s { unsigned char :0; unsigned int v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_Ui_BFu31i { unsigned char :0; unsigned int v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_Ui_BFu31ll { unsigned char :0; unsigned int v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_Ui_BFu32i { unsigned char :0; unsigned int v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_Ui_BFu32ll { unsigned char :0; unsigned int v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_Ui_BFu33 { unsigned char :0; unsigned int v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_Ui_BFu7c { unsigned char :0; unsigned int v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_Ui_BFu7i { unsigned char :0; unsigned int v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_Ui_BFu7ll { unsigned char :0; unsigned int v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_Ui_BFu7s { unsigned char :0; unsigned int v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_Ui_BFu8c { unsigned char :0; unsigned int v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_Ui_BFu8i { unsigned char :0; unsigned int v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_Ui_BFu8ll { unsigned char :0; unsigned int v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_Ui_BFu8s { unsigned char :0; unsigned int v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_Ui_BFu9i { unsigned char :0; unsigned int v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_Ui_BFu9ll { unsigned char :0; unsigned int v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_Ui_BFu9s { unsigned char :0; unsigned int v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_Ui_C { unsigned char :0; unsigned int v1; char v2; };
struct __attribute__((packed)) aBFu0c_Ui_D { unsigned char :0; unsigned int v1; double v2; };
struct __attribute__((packed)) aBFu0c_Ui_F { unsigned char :0; unsigned int v1; float v2; };
struct __attribute__((packed)) aBFu0c_Ui_I { unsigned char :0; unsigned int v1; int v2; };
struct __attribute__((packed)) aBFu0c_Ui_Ip { unsigned char :0; unsigned int v1; int * v2; };
struct __attribute__((packed)) aBFu0c_Ui_L { unsigned char :0; unsigned int v1; long long v2; };
struct __attribute__((packed)) aBFu0c_Ui_S { unsigned char :0; unsigned int v1; short v2; };
struct __attribute__((packed)) aBFu0c_Ui_Uc { unsigned char :0; unsigned int v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_Ui_Ui { unsigned char :0; unsigned int v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_Ui_Ul { unsigned char :0; unsigned int v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_Ui_Us { unsigned char :0; unsigned int v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_Ui_Vp { unsigned char :0; unsigned int v1; void * v2; };
struct __attribute__((packed)) aBFu0c_Ul { unsigned char :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0c_Ul_BFu0c { unsigned char :0; unsigned long long v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_Ul_BFu0i { unsigned char :0; unsigned long long v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_Ul_BFu0ll { unsigned char :0; unsigned long long v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_Ul_BFu0s { unsigned char :0; unsigned long long v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_Ul_BFu15i { unsigned char :0; unsigned long long v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_Ul_BFu15ll { unsigned char :0; unsigned long long v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_Ul_BFu15s { unsigned char :0; unsigned long long v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_Ul_BFu16i { unsigned char :0; unsigned long long v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_Ul_BFu16ll { unsigned char :0; unsigned long long v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_Ul_BFu16s { unsigned char :0; unsigned long long v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_Ul_BFu17i { unsigned char :0; unsigned long long v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_Ul_BFu17ll { unsigned char :0; unsigned long long v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_Ul_BFu1c { unsigned char :0; unsigned long long v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_Ul_BFu1i { unsigned char :0; unsigned long long v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_Ul_BFu1ll { unsigned char :0; unsigned long long v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_Ul_BFu1s { unsigned char :0; unsigned long long v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_Ul_BFu31i { unsigned char :0; unsigned long long v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_Ul_BFu31ll { unsigned char :0; unsigned long long v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_Ul_BFu32i { unsigned char :0; unsigned long long v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_Ul_BFu32ll { unsigned char :0; unsigned long long v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_Ul_BFu33 { unsigned char :0; unsigned long long v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_Ul_BFu7c { unsigned char :0; unsigned long long v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_Ul_BFu7i { unsigned char :0; unsigned long long v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_Ul_BFu7ll { unsigned char :0; unsigned long long v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_Ul_BFu7s { unsigned char :0; unsigned long long v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_Ul_BFu8c { unsigned char :0; unsigned long long v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_Ul_BFu8i { unsigned char :0; unsigned long long v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_Ul_BFu8ll { unsigned char :0; unsigned long long v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_Ul_BFu8s { unsigned char :0; unsigned long long v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_Ul_BFu9i { unsigned char :0; unsigned long long v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_Ul_BFu9ll { unsigned char :0; unsigned long long v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_Ul_BFu9s { unsigned char :0; unsigned long long v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_Ul_C { unsigned char :0; unsigned long long v1; char v2; };
struct __attribute__((packed)) aBFu0c_Ul_D { unsigned char :0; unsigned long long v1; double v2; };
struct __attribute__((packed)) aBFu0c_Ul_F { unsigned char :0; unsigned long long v1; float v2; };
struct __attribute__((packed)) aBFu0c_Ul_I { unsigned char :0; unsigned long long v1; int v2; };
struct __attribute__((packed)) aBFu0c_Ul_Ip { unsigned char :0; unsigned long long v1; int * v2; };
struct __attribute__((packed)) aBFu0c_Ul_L { unsigned char :0; unsigned long long v1; long long v2; };
struct __attribute__((packed)) aBFu0c_Ul_S { unsigned char :0; unsigned long long v1; short v2; };
struct __attribute__((packed)) aBFu0c_Ul_Uc { unsigned char :0; unsigned long long v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_Ul_Ui { unsigned char :0; unsigned long long v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_Ul_Ul { unsigned char :0; unsigned long long v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_Ul_Us { unsigned char :0; unsigned long long v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_Ul_Vp { unsigned char :0; unsigned long long v1; void * v2; };
struct __attribute__((packed)) aBFu0c_Us { unsigned char :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0c_Us_BFu0c { unsigned char :0; unsigned short v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_Us_BFu0i { unsigned char :0; unsigned short v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_Us_BFu0ll { unsigned char :0; unsigned short v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_Us_BFu0s { unsigned char :0; unsigned short v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_Us_BFu15i { unsigned char :0; unsigned short v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_Us_BFu15ll { unsigned char :0; unsigned short v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_Us_BFu15s { unsigned char :0; unsigned short v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_Us_BFu16i { unsigned char :0; unsigned short v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_Us_BFu16ll { unsigned char :0; unsigned short v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_Us_BFu16s { unsigned char :0; unsigned short v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_Us_BFu17i { unsigned char :0; unsigned short v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_Us_BFu17ll { unsigned char :0; unsigned short v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_Us_BFu1c { unsigned char :0; unsigned short v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_Us_BFu1i { unsigned char :0; unsigned short v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_Us_BFu1ll { unsigned char :0; unsigned short v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_Us_BFu1s { unsigned char :0; unsigned short v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_Us_BFu31i { unsigned char :0; unsigned short v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_Us_BFu31ll { unsigned char :0; unsigned short v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_Us_BFu32i { unsigned char :0; unsigned short v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_Us_BFu32ll { unsigned char :0; unsigned short v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_Us_BFu33 { unsigned char :0; unsigned short v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_Us_BFu7c { unsigned char :0; unsigned short v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_Us_BFu7i { unsigned char :0; unsigned short v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_Us_BFu7ll { unsigned char :0; unsigned short v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_Us_BFu7s { unsigned char :0; unsigned short v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_Us_BFu8c { unsigned char :0; unsigned short v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_Us_BFu8i { unsigned char :0; unsigned short v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_Us_BFu8ll { unsigned char :0; unsigned short v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_Us_BFu8s { unsigned char :0; unsigned short v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_Us_BFu9i { unsigned char :0; unsigned short v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_Us_BFu9ll { unsigned char :0; unsigned short v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_Us_BFu9s { unsigned char :0; unsigned short v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_Us_C { unsigned char :0; unsigned short v1; char v2; };
struct __attribute__((packed)) aBFu0c_Us_D { unsigned char :0; unsigned short v1; double v2; };
struct __attribute__((packed)) aBFu0c_Us_F { unsigned char :0; unsigned short v1; float v2; };
struct __attribute__((packed)) aBFu0c_Us_I { unsigned char :0; unsigned short v1; int v2; };
struct __attribute__((packed)) aBFu0c_Us_Ip { unsigned char :0; unsigned short v1; int * v2; };
struct __attribute__((packed)) aBFu0c_Us_L { unsigned char :0; unsigned short v1; long long v2; };
struct __attribute__((packed)) aBFu0c_Us_S { unsigned char :0; unsigned short v1; short v2; };
struct __attribute__((packed)) aBFu0c_Us_Uc { unsigned char :0; unsigned short v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_Us_Ui { unsigned char :0; unsigned short v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_Us_Ul { unsigned char :0; unsigned short v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_Us_Us { unsigned char :0; unsigned short v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_Us_Vp { unsigned char :0; unsigned short v1; void * v2; };
struct __attribute__((packed)) aBFu0c_Vp { unsigned char :0; void * v1; };
struct __attribute__((packed)) aBFu0c_Vp_BFu0c { unsigned char :0; void * v1; unsigned char :0; };
struct __attribute__((packed)) aBFu0c_Vp_BFu0i { unsigned char :0; void * v1; unsigned int :0; };
struct __attribute__((packed)) aBFu0c_Vp_BFu0ll { unsigned char :0; void * v1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0c_Vp_BFu0s { unsigned char :0; void * v1; unsigned short :0; };
struct __attribute__((packed)) aBFu0c_Vp_BFu15i { unsigned char :0; void * v1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0c_Vp_BFu15ll { unsigned char :0; void * v1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0c_Vp_BFu15s { unsigned char :0; void * v1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0c_Vp_BFu16i { unsigned char :0; void * v1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0c_Vp_BFu16ll { unsigned char :0; void * v1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0c_Vp_BFu16s { unsigned char :0; void * v1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0c_Vp_BFu17i { unsigned char :0; void * v1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0c_Vp_BFu17ll { unsigned char :0; void * v1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0c_Vp_BFu1c { unsigned char :0; void * v1; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0c_Vp_BFu1i { unsigned char :0; void * v1; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0c_Vp_BFu1ll { unsigned char :0; void * v1; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0c_Vp_BFu1s { unsigned char :0; void * v1; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0c_Vp_BFu31i { unsigned char :0; void * v1; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0c_Vp_BFu31ll { unsigned char :0; void * v1; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0c_Vp_BFu32i { unsigned char :0; void * v1; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0c_Vp_BFu32ll { unsigned char :0; void * v1; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0c_Vp_BFu33 { unsigned char :0; void * v1; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0c_Vp_BFu7c { unsigned char :0; void * v1; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0c_Vp_BFu7i { unsigned char :0; void * v1; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0c_Vp_BFu7ll { unsigned char :0; void * v1; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0c_Vp_BFu7s { unsigned char :0; void * v1; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0c_Vp_BFu8c { unsigned char :0; void * v1; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0c_Vp_BFu8i { unsigned char :0; void * v1; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0c_Vp_BFu8ll { unsigned char :0; void * v1; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0c_Vp_BFu8s { unsigned char :0; void * v1; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0c_Vp_BFu9i { unsigned char :0; void * v1; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0c_Vp_BFu9ll { unsigned char :0; void * v1; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0c_Vp_BFu9s { unsigned char :0; void * v1; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0c_Vp_C { unsigned char :0; void * v1; char v2; };
struct __attribute__((packed)) aBFu0c_Vp_D { unsigned char :0; void * v1; double v2; };
struct __attribute__((packed)) aBFu0c_Vp_F { unsigned char :0; void * v1; float v2; };
struct __attribute__((packed)) aBFu0c_Vp_I { unsigned char :0; void * v1; int v2; };
struct __attribute__((packed)) aBFu0c_Vp_Ip { unsigned char :0; void * v1; int * v2; };
struct __attribute__((packed)) aBFu0c_Vp_L { unsigned char :0; void * v1; long long v2; };
struct __attribute__((packed)) aBFu0c_Vp_S { unsigned char :0; void * v1; short v2; };
struct __attribute__((packed)) aBFu0c_Vp_Uc { unsigned char :0; void * v1; unsigned char v2; };
struct __attribute__((packed)) aBFu0c_Vp_Ui { unsigned char :0; void * v1; unsigned int v2; };
struct __attribute__((packed)) aBFu0c_Vp_Ul { unsigned char :0; void * v1; unsigned long long v2; };
struct __attribute__((packed)) aBFu0c_Vp_Us { unsigned char :0; void * v1; unsigned short v2; };
struct __attribute__((packed)) aBFu0c_Vp_Vp { unsigned char :0; void * v1; void * v2; };
struct __attribute__((packed)) aBFu0i { unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c { unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c { unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFs0c { unsigned int :0; signed char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFs0i { unsigned int :0; signed char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFs0ll { unsigned int :0; signed char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFs0s { unsigned int :0; signed char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFu0c { unsigned int :0; signed char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFu0i { unsigned int :0; signed char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFu0ll { unsigned int :0; signed char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0c_BFu0s { unsigned int :0; signed char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i { unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFs0c { unsigned int :0; signed char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFs0i { unsigned int :0; signed char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFs0ll { unsigned int :0; signed char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFs0s { unsigned int :0; signed char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFu0c { unsigned int :0; signed char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFu0i { unsigned int :0; signed char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFu0ll { unsigned int :0; signed char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0i_BFu0s { unsigned int :0; signed char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll { unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFs0c { unsigned int :0; signed char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFs0i { unsigned int :0; signed char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFs0ll { unsigned int :0; signed char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFs0s { unsigned int :0; signed char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFu0c { unsigned int :0; signed char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFu0i { unsigned int :0; signed char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFu0ll { unsigned int :0; signed char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0ll_BFu0s { unsigned int :0; signed char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s { unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFs0c { unsigned int :0; signed char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFs0i { unsigned int :0; signed char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFs0ll { unsigned int :0; signed char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFs0s { unsigned int :0; signed char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFu0c { unsigned int :0; signed char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFu0i { unsigned int :0; signed char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFu0ll { unsigned int :0; signed char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFs0s_BFu0s { unsigned int :0; signed char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c { unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFs0c { unsigned int :0; signed char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFs0i { unsigned int :0; signed char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFs0ll { unsigned int :0; signed char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFs0s { unsigned int :0; signed char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFu0c { unsigned int :0; signed char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFu0i { unsigned int :0; signed char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFu0ll { unsigned int :0; signed char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0c_BFu0s { unsigned int :0; signed char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i { unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFs0c { unsigned int :0; signed char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFs0i { unsigned int :0; signed char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFs0ll { unsigned int :0; signed char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFs0s { unsigned int :0; signed char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFu0c { unsigned int :0; signed char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFu0i { unsigned int :0; signed char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFu0ll { unsigned int :0; signed char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0i_BFu0s { unsigned int :0; signed char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll { unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFs0c { unsigned int :0; signed char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFs0i { unsigned int :0; signed char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFs0ll { unsigned int :0; signed char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFs0s { unsigned int :0; signed char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFu0c { unsigned int :0; signed char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFu0i { unsigned int :0; signed char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFu0ll { unsigned int :0; signed char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0ll_BFu0s { unsigned int :0; signed char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s { unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFs0c { unsigned int :0; signed char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFs0i { unsigned int :0; signed char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFs0ll { unsigned int :0; signed char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFs0s { unsigned int :0; signed char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFu0c { unsigned int :0; signed char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFu0i { unsigned int :0; signed char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFu0ll { unsigned int :0; signed char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0c_BFu0s_BFu0s { unsigned int :0; signed char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i { unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c { unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFs0c { unsigned int :0; signed int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFs0i { unsigned int :0; signed int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFs0ll { unsigned int :0; signed int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFs0s { unsigned int :0; signed int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFu0c { unsigned int :0; signed int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFu0i { unsigned int :0; signed int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFu0ll { unsigned int :0; signed int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0c_BFu0s { unsigned int :0; signed int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i { unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFs0c { unsigned int :0; signed int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFs0i { unsigned int :0; signed int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFs0ll { unsigned int :0; signed int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFs0s { unsigned int :0; signed int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFu0c { unsigned int :0; signed int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFu0i { unsigned int :0; signed int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFu0ll { unsigned int :0; signed int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0i_BFu0s { unsigned int :0; signed int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll { unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFs0c { unsigned int :0; signed int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFs0i { unsigned int :0; signed int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFs0ll { unsigned int :0; signed int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFs0s { unsigned int :0; signed int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFu0c { unsigned int :0; signed int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFu0i { unsigned int :0; signed int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFu0ll { unsigned int :0; signed int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0ll_BFu0s { unsigned int :0; signed int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s { unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFs0c { unsigned int :0; signed int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFs0i { unsigned int :0; signed int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFs0ll { unsigned int :0; signed int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFs0s { unsigned int :0; signed int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFu0c { unsigned int :0; signed int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFu0i { unsigned int :0; signed int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFu0ll { unsigned int :0; signed int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFs0s_BFu0s { unsigned int :0; signed int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c { unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFs0c { unsigned int :0; signed int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFs0i { unsigned int :0; signed int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFs0ll { unsigned int :0; signed int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFs0s { unsigned int :0; signed int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFu0c { unsigned int :0; signed int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFu0i { unsigned int :0; signed int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFu0ll { unsigned int :0; signed int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0c_BFu0s { unsigned int :0; signed int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i { unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFs0c { unsigned int :0; signed int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFs0i { unsigned int :0; signed int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFs0ll { unsigned int :0; signed int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFs0s { unsigned int :0; signed int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFu0c { unsigned int :0; signed int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFu0i { unsigned int :0; signed int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFu0ll { unsigned int :0; signed int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0i_BFu0s { unsigned int :0; signed int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll { unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFs0c { unsigned int :0; signed int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFs0i { unsigned int :0; signed int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFs0ll { unsigned int :0; signed int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFs0s { unsigned int :0; signed int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFu0c { unsigned int :0; signed int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFu0i { unsigned int :0; signed int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFu0ll { unsigned int :0; signed int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0ll_BFu0s { unsigned int :0; signed int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s { unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFs0c { unsigned int :0; signed int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFs0i { unsigned int :0; signed int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFs0ll { unsigned int :0; signed int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFs0s { unsigned int :0; signed int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFu0c { unsigned int :0; signed int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFu0i { unsigned int :0; signed int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFu0ll { unsigned int :0; signed int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0i_BFu0s_BFu0s { unsigned int :0; signed int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll { unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c { unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFs0c { unsigned int :0; signed long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFs0i { unsigned int :0; signed long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFs0ll { unsigned int :0; signed long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFs0s { unsigned int :0; signed long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFu0c { unsigned int :0; signed long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFu0i { unsigned int :0; signed long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFu0ll { unsigned int :0; signed long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0c_BFu0s { unsigned int :0; signed long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i { unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFs0c { unsigned int :0; signed long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFs0i { unsigned int :0; signed long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFs0ll { unsigned int :0; signed long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFs0s { unsigned int :0; signed long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFu0c { unsigned int :0; signed long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFu0i { unsigned int :0; signed long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFu0ll { unsigned int :0; signed long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0i_BFu0s { unsigned int :0; signed long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll { unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFs0c { unsigned int :0; signed long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFs0i { unsigned int :0; signed long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFs0ll { unsigned int :0; signed long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFs0s { unsigned int :0; signed long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFu0c { unsigned int :0; signed long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFu0i { unsigned int :0; signed long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFu0ll { unsigned int :0; signed long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0ll_BFu0s { unsigned int :0; signed long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s { unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFs0c { unsigned int :0; signed long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFs0i { unsigned int :0; signed long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFs0ll { unsigned int :0; signed long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFs0s { unsigned int :0; signed long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFu0c { unsigned int :0; signed long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFu0i { unsigned int :0; signed long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFu0ll { unsigned int :0; signed long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFs0s_BFu0s { unsigned int :0; signed long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c { unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFs0c { unsigned int :0; signed long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFs0i { unsigned int :0; signed long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFs0ll { unsigned int :0; signed long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFs0s { unsigned int :0; signed long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFu0c { unsigned int :0; signed long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFu0i { unsigned int :0; signed long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFu0ll { unsigned int :0; signed long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0c_BFu0s { unsigned int :0; signed long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i { unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFs0c { unsigned int :0; signed long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFs0i { unsigned int :0; signed long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFs0ll { unsigned int :0; signed long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFs0s { unsigned int :0; signed long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFu0c { unsigned int :0; signed long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFu0i { unsigned int :0; signed long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFu0ll { unsigned int :0; signed long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0i_BFu0s { unsigned int :0; signed long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll { unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFs0c { unsigned int :0; signed long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFs0i { unsigned int :0; signed long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFs0ll { unsigned int :0; signed long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFs0s { unsigned int :0; signed long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFu0c { unsigned int :0; signed long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFu0i { unsigned int :0; signed long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFu0ll { unsigned int :0; signed long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0ll_BFu0s { unsigned int :0; signed long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s { unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFs0c { unsigned int :0; signed long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFs0i { unsigned int :0; signed long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFs0ll { unsigned int :0; signed long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFs0s { unsigned int :0; signed long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFu0c { unsigned int :0; signed long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFu0i { unsigned int :0; signed long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFu0ll { unsigned int :0; signed long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0ll_BFu0s_BFu0s { unsigned int :0; signed long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s { unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c { unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFs0c { unsigned int :0; signed short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFs0i { unsigned int :0; signed short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFs0ll { unsigned int :0; signed short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFs0s { unsigned int :0; signed short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFu0c { unsigned int :0; signed short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFu0i { unsigned int :0; signed short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFu0ll { unsigned int :0; signed short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0c_BFu0s { unsigned int :0; signed short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i { unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFs0c { unsigned int :0; signed short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFs0i { unsigned int :0; signed short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFs0ll { unsigned int :0; signed short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFs0s { unsigned int :0; signed short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFu0c { unsigned int :0; signed short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFu0i { unsigned int :0; signed short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFu0ll { unsigned int :0; signed short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0i_BFu0s { unsigned int :0; signed short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll { unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFs0c { unsigned int :0; signed short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFs0i { unsigned int :0; signed short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFs0ll { unsigned int :0; signed short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFs0s { unsigned int :0; signed short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFu0c { unsigned int :0; signed short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFu0i { unsigned int :0; signed short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFu0ll { unsigned int :0; signed short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0ll_BFu0s { unsigned int :0; signed short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s { unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFs0c { unsigned int :0; signed short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFs0i { unsigned int :0; signed short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFs0ll { unsigned int :0; signed short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFs0s { unsigned int :0; signed short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFu0c { unsigned int :0; signed short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFu0i { unsigned int :0; signed short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFu0ll { unsigned int :0; signed short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFs0s_BFu0s { unsigned int :0; signed short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c { unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFs0c { unsigned int :0; signed short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFs0i { unsigned int :0; signed short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFs0ll { unsigned int :0; signed short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFs0s { unsigned int :0; signed short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFu0c { unsigned int :0; signed short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFu0i { unsigned int :0; signed short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFu0ll { unsigned int :0; signed short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0c_BFu0s { unsigned int :0; signed short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i { unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFs0c { unsigned int :0; signed short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFs0i { unsigned int :0; signed short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFs0ll { unsigned int :0; signed short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFs0s { unsigned int :0; signed short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFu0c { unsigned int :0; signed short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFu0i { unsigned int :0; signed short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFu0ll { unsigned int :0; signed short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0i_BFu0s { unsigned int :0; signed short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll { unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFs0c { unsigned int :0; signed short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFs0i { unsigned int :0; signed short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFs0ll { unsigned int :0; signed short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFs0s { unsigned int :0; signed short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFu0c { unsigned int :0; signed short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFu0i { unsigned int :0; signed short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFu0ll { unsigned int :0; signed short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0ll_BFu0s { unsigned int :0; signed short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s { unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFs0c { unsigned int :0; signed short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFs0i { unsigned int :0; signed short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFs0ll { unsigned int :0; signed short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFs0s { unsigned int :0; signed short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFu0c { unsigned int :0; signed short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFu0i { unsigned int :0; signed short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFu0ll { unsigned int :0; signed short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFs0s_BFu0s_BFu0s { unsigned int :0; signed short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c { unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c { unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFs0c { unsigned int :0; unsigned char :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFs0i { unsigned int :0; unsigned char :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFs0ll { unsigned int :0; unsigned char :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFs0s { unsigned int :0; unsigned char :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFu0c { unsigned int :0; unsigned char :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFu0i { unsigned int :0; unsigned char :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFu0ll { unsigned int :0; unsigned char :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0c_BFu0s { unsigned int :0; unsigned char :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i { unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFs0c { unsigned int :0; unsigned char :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFs0i { unsigned int :0; unsigned char :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFs0ll { unsigned int :0; unsigned char :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFs0s { unsigned int :0; unsigned char :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFu0c { unsigned int :0; unsigned char :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFu0i { unsigned int :0; unsigned char :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFu0ll { unsigned int :0; unsigned char :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0i_BFu0s { unsigned int :0; unsigned char :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll { unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFs0c { unsigned int :0; unsigned char :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFs0i { unsigned int :0; unsigned char :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFs0ll { unsigned int :0; unsigned char :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFs0s { unsigned int :0; unsigned char :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFu0c { unsigned int :0; unsigned char :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFu0i { unsigned int :0; unsigned char :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFu0ll { unsigned int :0; unsigned char :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0ll_BFu0s { unsigned int :0; unsigned char :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s { unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFs0c { unsigned int :0; unsigned char :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFs0i { unsigned int :0; unsigned char :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFs0ll { unsigned int :0; unsigned char :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFs0s { unsigned int :0; unsigned char :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFu0c { unsigned int :0; unsigned char :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFu0i { unsigned int :0; unsigned char :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFu0ll { unsigned int :0; unsigned char :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFs0s_BFu0s { unsigned int :0; unsigned char :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c { unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFs0c { unsigned int :0; unsigned char :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFs0i { unsigned int :0; unsigned char :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFs0ll { unsigned int :0; unsigned char :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFs0s { unsigned int :0; unsigned char :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFu0c { unsigned int :0; unsigned char :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFu0i { unsigned int :0; unsigned char :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFu0ll { unsigned int :0; unsigned char :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0c_BFu0s { unsigned int :0; unsigned char :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i { unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFs0c { unsigned int :0; unsigned char :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFs0i { unsigned int :0; unsigned char :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFs0ll { unsigned int :0; unsigned char :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFs0s { unsigned int :0; unsigned char :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFu0c { unsigned int :0; unsigned char :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFu0i { unsigned int :0; unsigned char :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFu0ll { unsigned int :0; unsigned char :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0i_BFu0s { unsigned int :0; unsigned char :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll { unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFs0c { unsigned int :0; unsigned char :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFs0i { unsigned int :0; unsigned char :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFs0ll { unsigned int :0; unsigned char :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFs0s { unsigned int :0; unsigned char :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFu0c { unsigned int :0; unsigned char :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFu0i { unsigned int :0; unsigned char :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFu0ll { unsigned int :0; unsigned char :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0ll_BFu0s { unsigned int :0; unsigned char :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s { unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFs0c { unsigned int :0; unsigned char :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFs0i { unsigned int :0; unsigned char :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFs0ll { unsigned int :0; unsigned char :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFs0s { unsigned int :0; unsigned char :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFu0c { unsigned int :0; unsigned char :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFu0i { unsigned int :0; unsigned char :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFu0ll { unsigned int :0; unsigned char :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu0s_BFu0s { unsigned int :0; unsigned char :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu15i { unsigned int :0; unsigned char :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu15ll { unsigned int :0; unsigned char :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu15s { unsigned int :0; unsigned char :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu16i { unsigned int :0; unsigned char :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu16ll { unsigned int :0; unsigned char :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu16s { unsigned int :0; unsigned char :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu17i { unsigned int :0; unsigned char :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu17ll { unsigned int :0; unsigned char :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu1c { unsigned int :0; unsigned char :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu1i { unsigned int :0; unsigned char :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu1ll { unsigned int :0; unsigned char :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu1s { unsigned int :0; unsigned char :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu31i { unsigned int :0; unsigned char :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu31ll { unsigned int :0; unsigned char :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu32i { unsigned int :0; unsigned char :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu32ll { unsigned int :0; unsigned char :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu33 { unsigned int :0; unsigned char :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu7c { unsigned int :0; unsigned char :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu7i { unsigned int :0; unsigned char :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu7ll { unsigned int :0; unsigned char :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu7s { unsigned int :0; unsigned char :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu8c { unsigned int :0; unsigned char :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu8i { unsigned int :0; unsigned char :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu8ll { unsigned int :0; unsigned char :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu8s { unsigned int :0; unsigned char :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu9i { unsigned int :0; unsigned char :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu9ll { unsigned int :0; unsigned char :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0c_BFu9s { unsigned int :0; unsigned char :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0c_C { unsigned int :0; unsigned char :0; char v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_D { unsigned int :0; unsigned char :0; double v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_F { unsigned int :0; unsigned char :0; float v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_I { unsigned int :0; unsigned char :0; int v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_Ip { unsigned int :0; unsigned char :0; int * v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_L { unsigned int :0; unsigned char :0; long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_S { unsigned int :0; unsigned char :0; short v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_Uc { unsigned int :0; unsigned char :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_Ui { unsigned int :0; unsigned char :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_Ul { unsigned int :0; unsigned char :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_Us { unsigned int :0; unsigned char :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0i_BFu0c_Vp { unsigned int :0; unsigned char :0; void * v1; };
struct __attribute__((packed)) aBFu0i_BFu0i { unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c { unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFs0c { unsigned int :0; unsigned int :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFs0i { unsigned int :0; unsigned int :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFs0ll { unsigned int :0; unsigned int :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFs0s { unsigned int :0; unsigned int :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFu0c { unsigned int :0; unsigned int :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFu0i { unsigned int :0; unsigned int :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFu0ll { unsigned int :0; unsigned int :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0c_BFu0s { unsigned int :0; unsigned int :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i { unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFs0c { unsigned int :0; unsigned int :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFs0i { unsigned int :0; unsigned int :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFs0ll { unsigned int :0; unsigned int :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFs0s { unsigned int :0; unsigned int :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFu0c { unsigned int :0; unsigned int :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFu0i { unsigned int :0; unsigned int :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFu0ll { unsigned int :0; unsigned int :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0i_BFu0s { unsigned int :0; unsigned int :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll { unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFs0c { unsigned int :0; unsigned int :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFs0i { unsigned int :0; unsigned int :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFs0ll { unsigned int :0; unsigned int :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFs0s { unsigned int :0; unsigned int :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFu0c { unsigned int :0; unsigned int :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFu0i { unsigned int :0; unsigned int :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFu0ll { unsigned int :0; unsigned int :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0ll_BFu0s { unsigned int :0; unsigned int :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s { unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFs0c { unsigned int :0; unsigned int :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFs0i { unsigned int :0; unsigned int :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFs0ll { unsigned int :0; unsigned int :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFs0s { unsigned int :0; unsigned int :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFu0c { unsigned int :0; unsigned int :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFu0i { unsigned int :0; unsigned int :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFu0ll { unsigned int :0; unsigned int :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFs0s_BFu0s { unsigned int :0; unsigned int :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c { unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFs0c { unsigned int :0; unsigned int :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFs0i { unsigned int :0; unsigned int :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFs0ll { unsigned int :0; unsigned int :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFs0s { unsigned int :0; unsigned int :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFu0c { unsigned int :0; unsigned int :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFu0i { unsigned int :0; unsigned int :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFu0ll { unsigned int :0; unsigned int :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0c_BFu0s { unsigned int :0; unsigned int :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i { unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFs0c { unsigned int :0; unsigned int :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFs0i { unsigned int :0; unsigned int :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFs0ll { unsigned int :0; unsigned int :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFs0s { unsigned int :0; unsigned int :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFu0c { unsigned int :0; unsigned int :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFu0i { unsigned int :0; unsigned int :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFu0ll { unsigned int :0; unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0i_BFu0s { unsigned int :0; unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll { unsigned int :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFs0c { unsigned int :0; unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFs0i { unsigned int :0; unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFs0ll { unsigned int :0; unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFs0s { unsigned int :0; unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFu0c { unsigned int :0; unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFu0i { unsigned int :0; unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFu0ll { unsigned int :0; unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0ll_BFu0s { unsigned int :0; unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s { unsigned int :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFs0c { unsigned int :0; unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFs0i { unsigned int :0; unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFs0ll { unsigned int :0; unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFs0s { unsigned int :0; unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFu0c { unsigned int :0; unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFu0i { unsigned int :0; unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFu0ll { unsigned int :0; unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu0s_BFu0s { unsigned int :0; unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu15i { unsigned int :0; unsigned int :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu15ll { unsigned int :0; unsigned int :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu15s { unsigned int :0; unsigned int :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu16i { unsigned int :0; unsigned int :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu16ll { unsigned int :0; unsigned int :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu16s { unsigned int :0; unsigned int :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu17i { unsigned int :0; unsigned int :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu17ll { unsigned int :0; unsigned int :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu1c { unsigned int :0; unsigned int :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu1i { unsigned int :0; unsigned int :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu1ll { unsigned int :0; unsigned int :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu1s { unsigned int :0; unsigned int :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu31i { unsigned int :0; unsigned int :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu31ll { unsigned int :0; unsigned int :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu32i { unsigned int :0; unsigned int :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu32ll { unsigned int :0; unsigned int :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu33 { unsigned int :0; unsigned int :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu7c { unsigned int :0; unsigned int :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu7i { unsigned int :0; unsigned int :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu7ll { unsigned int :0; unsigned int :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu7s { unsigned int :0; unsigned int :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu8c { unsigned int :0; unsigned int :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu8i { unsigned int :0; unsigned int :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu8ll { unsigned int :0; unsigned int :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu8s { unsigned int :0; unsigned int :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu9i { unsigned int :0; unsigned int :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu9ll { unsigned int :0; unsigned int :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0i_BFu9s { unsigned int :0; unsigned int :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0i_C { unsigned int :0; unsigned int :0; char v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_D { unsigned int :0; unsigned int :0; double v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_F { unsigned int :0; unsigned int :0; float v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_I { unsigned int :0; unsigned int :0; int v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_Ip { unsigned int :0; unsigned int :0; int * v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_L { unsigned int :0; unsigned int :0; long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_S { unsigned int :0; unsigned int :0; short v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_Uc { unsigned int :0; unsigned int :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_Ui { unsigned int :0; unsigned int :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_Ul { unsigned int :0; unsigned int :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_Us { unsigned int :0; unsigned int :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0i_BFu0i_Vp { unsigned int :0; unsigned int :0; void * v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll { unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c { unsigned int :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFs0c { unsigned int :0; unsigned long long :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFs0i { unsigned int :0; unsigned long long :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFs0ll { unsigned int :0; unsigned long long :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFs0s { unsigned int :0; unsigned long long :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFu0c { unsigned int :0; unsigned long long :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFu0i { unsigned int :0; unsigned long long :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFu0ll { unsigned int :0; unsigned long long :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0c_BFu0s { unsigned int :0; unsigned long long :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i { unsigned int :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFs0c { unsigned int :0; unsigned long long :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFs0i { unsigned int :0; unsigned long long :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFs0ll { unsigned int :0; unsigned long long :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFs0s { unsigned int :0; unsigned long long :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFu0c { unsigned int :0; unsigned long long :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFu0i { unsigned int :0; unsigned long long :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFu0ll { unsigned int :0; unsigned long long :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0i_BFu0s { unsigned int :0; unsigned long long :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll { unsigned int :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFs0c { unsigned int :0; unsigned long long :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFs0i { unsigned int :0; unsigned long long :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFs0ll { unsigned int :0; unsigned long long :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFs0s { unsigned int :0; unsigned long long :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFu0c { unsigned int :0; unsigned long long :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFu0i { unsigned int :0; unsigned long long :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFu0ll { unsigned int :0; unsigned long long :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0ll_BFu0s { unsigned int :0; unsigned long long :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s { unsigned int :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFs0c { unsigned int :0; unsigned long long :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFs0i { unsigned int :0; unsigned long long :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFs0ll { unsigned int :0; unsigned long long :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFs0s { unsigned int :0; unsigned long long :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFu0c { unsigned int :0; unsigned long long :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFu0i { unsigned int :0; unsigned long long :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFu0ll { unsigned int :0; unsigned long long :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFs0s_BFu0s { unsigned int :0; unsigned long long :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c { unsigned int :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFs0c { unsigned int :0; unsigned long long :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFs0i { unsigned int :0; unsigned long long :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFs0ll { unsigned int :0; unsigned long long :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFs0s { unsigned int :0; unsigned long long :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFu0c { unsigned int :0; unsigned long long :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFu0i { unsigned int :0; unsigned long long :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFu0ll { unsigned int :0; unsigned long long :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0c_BFu0s { unsigned int :0; unsigned long long :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i { unsigned int :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFs0c { unsigned int :0; unsigned long long :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFs0i { unsigned int :0; unsigned long long :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFs0ll { unsigned int :0; unsigned long long :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFs0s { unsigned int :0; unsigned long long :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFu0c { unsigned int :0; unsigned long long :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFu0i { unsigned int :0; unsigned long long :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFu0ll { unsigned int :0; unsigned long long :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0i_BFu0s { unsigned int :0; unsigned long long :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll { unsigned int :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFs0c { unsigned int :0; unsigned long long :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFs0i { unsigned int :0; unsigned long long :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFs0ll { unsigned int :0; unsigned long long :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFs0s { unsigned int :0; unsigned long long :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFu0c { unsigned int :0; unsigned long long :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFu0i { unsigned int :0; unsigned long long :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFu0ll { unsigned int :0; unsigned long long :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0ll_BFu0s { unsigned int :0; unsigned long long :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s { unsigned int :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFs0c { unsigned int :0; unsigned long long :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFs0i { unsigned int :0; unsigned long long :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFs0ll { unsigned int :0; unsigned long long :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFs0s { unsigned int :0; unsigned long long :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFu0c { unsigned int :0; unsigned long long :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFu0i { unsigned int :0; unsigned long long :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFu0ll { unsigned int :0; unsigned long long :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu0s_BFu0s { unsigned int :0; unsigned long long :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu15i { unsigned int :0; unsigned long long :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu15ll { unsigned int :0; unsigned long long :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu15s { unsigned int :0; unsigned long long :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu16i { unsigned int :0; unsigned long long :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu16ll { unsigned int :0; unsigned long long :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu16s { unsigned int :0; unsigned long long :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu17i { unsigned int :0; unsigned long long :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu17ll { unsigned int :0; unsigned long long :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu1c { unsigned int :0; unsigned long long :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu1i { unsigned int :0; unsigned long long :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu1ll { unsigned int :0; unsigned long long :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu1s { unsigned int :0; unsigned long long :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu31i { unsigned int :0; unsigned long long :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu31ll { unsigned int :0; unsigned long long :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu32i { unsigned int :0; unsigned long long :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu32ll { unsigned int :0; unsigned long long :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu33 { unsigned int :0; unsigned long long :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu7c { unsigned int :0; unsigned long long :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu7i { unsigned int :0; unsigned long long :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu7ll { unsigned int :0; unsigned long long :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu7s { unsigned int :0; unsigned long long :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu8c { unsigned int :0; unsigned long long :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu8i { unsigned int :0; unsigned long long :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu8ll { unsigned int :0; unsigned long long :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu8s { unsigned int :0; unsigned long long :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu9i { unsigned int :0; unsigned long long :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu9ll { unsigned int :0; unsigned long long :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0ll_BFu9s { unsigned int :0; unsigned long long :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0ll_C { unsigned int :0; unsigned long long :0; char v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_D { unsigned int :0; unsigned long long :0; double v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_F { unsigned int :0; unsigned long long :0; float v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_I { unsigned int :0; unsigned long long :0; int v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_Ip { unsigned int :0; unsigned long long :0; int * v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_L { unsigned int :0; unsigned long long :0; long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_S { unsigned int :0; unsigned long long :0; short v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_Uc { unsigned int :0; unsigned long long :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_Ui { unsigned int :0; unsigned long long :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_Ul { unsigned int :0; unsigned long long :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_Us { unsigned int :0; unsigned long long :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0i_BFu0ll_Vp { unsigned int :0; unsigned long long :0; void * v1; };
struct __attribute__((packed)) aBFu0i_BFu0s { unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c { unsigned int :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFs0c { unsigned int :0; unsigned short :0; signed char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFs0i { unsigned int :0; unsigned short :0; signed char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFs0ll { unsigned int :0; unsigned short :0; signed char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFs0s { unsigned int :0; unsigned short :0; signed char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFu0c { unsigned int :0; unsigned short :0; signed char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFu0i { unsigned int :0; unsigned short :0; signed char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFu0ll { unsigned int :0; unsigned short :0; signed char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0c_BFu0s { unsigned int :0; unsigned short :0; signed char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i { unsigned int :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFs0c { unsigned int :0; unsigned short :0; signed int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFs0i { unsigned int :0; unsigned short :0; signed int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFs0ll { unsigned int :0; unsigned short :0; signed int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFs0s { unsigned int :0; unsigned short :0; signed int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFu0c { unsigned int :0; unsigned short :0; signed int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFu0i { unsigned int :0; unsigned short :0; signed int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFu0ll { unsigned int :0; unsigned short :0; signed int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0i_BFu0s { unsigned int :0; unsigned short :0; signed int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll { unsigned int :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFs0c { unsigned int :0; unsigned short :0; signed long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFs0i { unsigned int :0; unsigned short :0; signed long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFs0ll { unsigned int :0; unsigned short :0; signed long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFs0s { unsigned int :0; unsigned short :0; signed long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFu0c { unsigned int :0; unsigned short :0; signed long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFu0i { unsigned int :0; unsigned short :0; signed long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFu0ll { unsigned int :0; unsigned short :0; signed long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0ll_BFu0s { unsigned int :0; unsigned short :0; signed long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s { unsigned int :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFs0c { unsigned int :0; unsigned short :0; signed short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFs0i { unsigned int :0; unsigned short :0; signed short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFs0ll { unsigned int :0; unsigned short :0; signed short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFs0s { unsigned int :0; unsigned short :0; signed short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFu0c { unsigned int :0; unsigned short :0; signed short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFu0i { unsigned int :0; unsigned short :0; signed short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFu0ll { unsigned int :0; unsigned short :0; signed short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFs0s_BFu0s { unsigned int :0; unsigned short :0; signed short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c { unsigned int :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFs0c { unsigned int :0; unsigned short :0; unsigned char :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFs0i { unsigned int :0; unsigned short :0; unsigned char :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFs0ll { unsigned int :0; unsigned short :0; unsigned char :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFs0s { unsigned int :0; unsigned short :0; unsigned char :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFu0c { unsigned int :0; unsigned short :0; unsigned char :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFu0i { unsigned int :0; unsigned short :0; unsigned char :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFu0ll { unsigned int :0; unsigned short :0; unsigned char :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0c_BFu0s { unsigned int :0; unsigned short :0; unsigned char :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i { unsigned int :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFs0c { unsigned int :0; unsigned short :0; unsigned int :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFs0i { unsigned int :0; unsigned short :0; unsigned int :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFs0ll { unsigned int :0; unsigned short :0; unsigned int :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFs0s { unsigned int :0; unsigned short :0; unsigned int :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFu0c { unsigned int :0; unsigned short :0; unsigned int :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFu0i { unsigned int :0; unsigned short :0; unsigned int :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFu0ll { unsigned int :0; unsigned short :0; unsigned int :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0i_BFu0s { unsigned int :0; unsigned short :0; unsigned int :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll { unsigned int :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFs0c { unsigned int :0; unsigned short :0; unsigned long long :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFs0i { unsigned int :0; unsigned short :0; unsigned long long :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFs0ll { unsigned int :0; unsigned short :0; unsigned long long :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFs0s { unsigned int :0; unsigned short :0; unsigned long long :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFu0c { unsigned int :0; unsigned short :0; unsigned long long :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFu0i { unsigned int :0; unsigned short :0; unsigned long long :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFu0ll { unsigned int :0; unsigned short :0; unsigned long long :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0ll_BFu0s { unsigned int :0; unsigned short :0; unsigned long long :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s { unsigned int :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFs0c { unsigned int :0; unsigned short :0; unsigned short :0; signed char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFs0i { unsigned int :0; unsigned short :0; unsigned short :0; signed int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFs0ll { unsigned int :0; unsigned short :0; unsigned short :0; signed long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFs0s { unsigned int :0; unsigned short :0; unsigned short :0; signed short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFu0c { unsigned int :0; unsigned short :0; unsigned short :0; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFu0i { unsigned int :0; unsigned short :0; unsigned short :0; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFu0ll { unsigned int :0; unsigned short :0; unsigned short :0; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu0s_BFu0s { unsigned int :0; unsigned short :0; unsigned short :0; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu15i { unsigned int :0; unsigned short :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu15ll { unsigned int :0; unsigned short :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu15s { unsigned int :0; unsigned short :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu16i { unsigned int :0; unsigned short :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu16ll { unsigned int :0; unsigned short :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu16s { unsigned int :0; unsigned short :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu17i { unsigned int :0; unsigned short :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu17ll { unsigned int :0; unsigned short :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu1c { unsigned int :0; unsigned short :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu1i { unsigned int :0; unsigned short :0; unsigned int v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu1ll { unsigned int :0; unsigned short :0; unsigned long long v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu1s { unsigned int :0; unsigned short :0; unsigned short v1:1; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu31i { unsigned int :0; unsigned short :0; unsigned int v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu31ll { unsigned int :0; unsigned short :0; unsigned long long v1:31; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu32i { unsigned int :0; unsigned short :0; unsigned int v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu32ll { unsigned int :0; unsigned short :0; unsigned long long v1:32; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu33 { unsigned int :0; unsigned short :0; unsigned long long v1:33; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu7c { unsigned int :0; unsigned short :0; unsigned char v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu7i { unsigned int :0; unsigned short :0; unsigned int v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu7ll { unsigned int :0; unsigned short :0; unsigned long long v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu7s { unsigned int :0; unsigned short :0; unsigned short v1:7; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu8c { unsigned int :0; unsigned short :0; unsigned char v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu8i { unsigned int :0; unsigned short :0; unsigned int v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu8ll { unsigned int :0; unsigned short :0; unsigned long long v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu8s { unsigned int :0; unsigned short :0; unsigned short v1:8; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu9i { unsigned int :0; unsigned short :0; unsigned int v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu9ll { unsigned int :0; unsigned short :0; unsigned long long v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0s_BFu9s { unsigned int :0; unsigned short :0; unsigned short v1:9; };
struct __attribute__((packed)) aBFu0i_BFu0s_C { unsigned int :0; unsigned short :0; char v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_D { unsigned int :0; unsigned short :0; double v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_F { unsigned int :0; unsigned short :0; float v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_I { unsigned int :0; unsigned short :0; int v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_Ip { unsigned int :0; unsigned short :0; int * v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_L { unsigned int :0; unsigned short :0; long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_S { unsigned int :0; unsigned short :0; short v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_Uc { unsigned int :0; unsigned short :0; unsigned char v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_Ui { unsigned int :0; unsigned short :0; unsigned int v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_Ul { unsigned int :0; unsigned short :0; unsigned long long v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_Us { unsigned int :0; unsigned short :0; unsigned short v1; };
struct __attribute__((packed)) aBFu0i_BFu0s_Vp { unsigned int :0; unsigned short :0; void * v1; };
struct __attribute__((packed)) aBFu0i_BFu15i { unsigned int :0; unsigned int v1:15; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu0c { unsigned int :0; unsigned int v1:15; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu0i { unsigned int :0; unsigned int v1:15; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu0ll { unsigned int :0; unsigned int v1:15; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu0s { unsigned int :0; unsigned int v1:15; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu15i { unsigned int :0; unsigned int v1:15; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu15ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu15s { unsigned int :0; unsigned int v1:15; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu16i { unsigned int :0; unsigned int v1:15; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu16ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu16s { unsigned int :0; unsigned int v1:15; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu17i { unsigned int :0; unsigned int v1:15; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu17ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu1c { unsigned int :0; unsigned int v1:15; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu1i { unsigned int :0; unsigned int v1:15; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu1ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu1s { unsigned int :0; unsigned int v1:15; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu31i { unsigned int :0; unsigned int v1:15; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu31ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu32i { unsigned int :0; unsigned int v1:15; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu32ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu33 { unsigned int :0; unsigned int v1:15; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu7c { unsigned int :0; unsigned int v1:15; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu7i { unsigned int :0; unsigned int v1:15; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu7ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu7s { unsigned int :0; unsigned int v1:15; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu8c { unsigned int :0; unsigned int v1:15; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu8i { unsigned int :0; unsigned int v1:15; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu8ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu8s { unsigned int :0; unsigned int v1:15; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu9i { unsigned int :0; unsigned int v1:15; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu9ll { unsigned int :0; unsigned int v1:15; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15i_BFu9s { unsigned int :0; unsigned int v1:15; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15i_C { unsigned int :0; unsigned int v1:15; char v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_D { unsigned int :0; unsigned int v1:15; double v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_F { unsigned int :0; unsigned int v1:15; float v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_I { unsigned int :0; unsigned int v1:15; int v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_Ip { unsigned int :0; unsigned int v1:15; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_L { unsigned int :0; unsigned int v1:15; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_S { unsigned int :0; unsigned int v1:15; short v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_Uc { unsigned int :0; unsigned int v1:15; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_Ui { unsigned int :0; unsigned int v1:15; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_Ul { unsigned int :0; unsigned int v1:15; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_Us { unsigned int :0; unsigned int v1:15; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu15i_Vp { unsigned int :0; unsigned int v1:15; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll { unsigned int :0; unsigned long long v1:15; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu0c { unsigned int :0; unsigned long long v1:15; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu0i { unsigned int :0; unsigned long long v1:15; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu0ll { unsigned int :0; unsigned long long v1:15; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu0s { unsigned int :0; unsigned long long v1:15; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu15i { unsigned int :0; unsigned long long v1:15; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu15ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu15s { unsigned int :0; unsigned long long v1:15; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu16i { unsigned int :0; unsigned long long v1:15; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu16ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu16s { unsigned int :0; unsigned long long v1:15; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu17i { unsigned int :0; unsigned long long v1:15; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu17ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu1c { unsigned int :0; unsigned long long v1:15; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu1i { unsigned int :0; unsigned long long v1:15; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu1ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu1s { unsigned int :0; unsigned long long v1:15; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu31i { unsigned int :0; unsigned long long v1:15; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu31ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu32i { unsigned int :0; unsigned long long v1:15; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu32ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu33 { unsigned int :0; unsigned long long v1:15; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu7c { unsigned int :0; unsigned long long v1:15; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu7i { unsigned int :0; unsigned long long v1:15; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu7ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu7s { unsigned int :0; unsigned long long v1:15; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu8c { unsigned int :0; unsigned long long v1:15; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu8i { unsigned int :0; unsigned long long v1:15; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu8ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu8s { unsigned int :0; unsigned long long v1:15; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu9i { unsigned int :0; unsigned long long v1:15; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu9ll { unsigned int :0; unsigned long long v1:15; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15ll_BFu9s { unsigned int :0; unsigned long long v1:15; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15ll_C { unsigned int :0; unsigned long long v1:15; char v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_D { unsigned int :0; unsigned long long v1:15; double v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_F { unsigned int :0; unsigned long long v1:15; float v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_I { unsigned int :0; unsigned long long v1:15; int v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_Ip { unsigned int :0; unsigned long long v1:15; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_L { unsigned int :0; unsigned long long v1:15; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_S { unsigned int :0; unsigned long long v1:15; short v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_Uc { unsigned int :0; unsigned long long v1:15; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_Ui { unsigned int :0; unsigned long long v1:15; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_Ul { unsigned int :0; unsigned long long v1:15; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_Us { unsigned int :0; unsigned long long v1:15; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu15ll_Vp { unsigned int :0; unsigned long long v1:15; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu15s { unsigned int :0; unsigned short v1:15; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu0c { unsigned int :0; unsigned short v1:15; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu0i { unsigned int :0; unsigned short v1:15; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu0ll { unsigned int :0; unsigned short v1:15; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu0s { unsigned int :0; unsigned short v1:15; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu15i { unsigned int :0; unsigned short v1:15; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu15ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu15s { unsigned int :0; unsigned short v1:15; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu16i { unsigned int :0; unsigned short v1:15; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu16ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu16s { unsigned int :0; unsigned short v1:15; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu17i { unsigned int :0; unsigned short v1:15; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu17ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu1c { unsigned int :0; unsigned short v1:15; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu1i { unsigned int :0; unsigned short v1:15; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu1ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu1s { unsigned int :0; unsigned short v1:15; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu31i { unsigned int :0; unsigned short v1:15; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu31ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu32i { unsigned int :0; unsigned short v1:15; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu32ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu33 { unsigned int :0; unsigned short v1:15; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu7c { unsigned int :0; unsigned short v1:15; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu7i { unsigned int :0; unsigned short v1:15; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu7ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu7s { unsigned int :0; unsigned short v1:15; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu8c { unsigned int :0; unsigned short v1:15; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu8i { unsigned int :0; unsigned short v1:15; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu8ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu8s { unsigned int :0; unsigned short v1:15; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu9i { unsigned int :0; unsigned short v1:15; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu9ll { unsigned int :0; unsigned short v1:15; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15s_BFu9s { unsigned int :0; unsigned short v1:15; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu15s_C { unsigned int :0; unsigned short v1:15; char v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_D { unsigned int :0; unsigned short v1:15; double v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_F { unsigned int :0; unsigned short v1:15; float v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_I { unsigned int :0; unsigned short v1:15; int v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_Ip { unsigned int :0; unsigned short v1:15; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_L { unsigned int :0; unsigned short v1:15; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_S { unsigned int :0; unsigned short v1:15; short v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_Uc { unsigned int :0; unsigned short v1:15; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_Ui { unsigned int :0; unsigned short v1:15; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_Ul { unsigned int :0; unsigned short v1:15; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_Us { unsigned int :0; unsigned short v1:15; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu15s_Vp { unsigned int :0; unsigned short v1:15; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu16i { unsigned int :0; unsigned int v1:16; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu0c { unsigned int :0; unsigned int v1:16; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu0i { unsigned int :0; unsigned int v1:16; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu0ll { unsigned int :0; unsigned int v1:16; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu0s { unsigned int :0; unsigned int v1:16; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu15i { unsigned int :0; unsigned int v1:16; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu15ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu15s { unsigned int :0; unsigned int v1:16; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu16i { unsigned int :0; unsigned int v1:16; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu16ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu16s { unsigned int :0; unsigned int v1:16; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu17i { unsigned int :0; unsigned int v1:16; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu17ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu1c { unsigned int :0; unsigned int v1:16; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu1i { unsigned int :0; unsigned int v1:16; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu1ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu1s { unsigned int :0; unsigned int v1:16; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu31i { unsigned int :0; unsigned int v1:16; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu31ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu32i { unsigned int :0; unsigned int v1:16; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu32ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu33 { unsigned int :0; unsigned int v1:16; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu7c { unsigned int :0; unsigned int v1:16; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu7i { unsigned int :0; unsigned int v1:16; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu7ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu7s { unsigned int :0; unsigned int v1:16; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu8c { unsigned int :0; unsigned int v1:16; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu8i { unsigned int :0; unsigned int v1:16; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu8ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu8s { unsigned int :0; unsigned int v1:16; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu9i { unsigned int :0; unsigned int v1:16; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu9ll { unsigned int :0; unsigned int v1:16; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16i_BFu9s { unsigned int :0; unsigned int v1:16; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16i_C { unsigned int :0; unsigned int v1:16; char v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_D { unsigned int :0; unsigned int v1:16; double v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_F { unsigned int :0; unsigned int v1:16; float v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_I { unsigned int :0; unsigned int v1:16; int v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_Ip { unsigned int :0; unsigned int v1:16; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_L { unsigned int :0; unsigned int v1:16; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_S { unsigned int :0; unsigned int v1:16; short v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_Uc { unsigned int :0; unsigned int v1:16; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_Ui { unsigned int :0; unsigned int v1:16; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_Ul { unsigned int :0; unsigned int v1:16; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_Us { unsigned int :0; unsigned int v1:16; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu16i_Vp { unsigned int :0; unsigned int v1:16; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll { unsigned int :0; unsigned long long v1:16; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu0c { unsigned int :0; unsigned long long v1:16; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu0i { unsigned int :0; unsigned long long v1:16; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu0ll { unsigned int :0; unsigned long long v1:16; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu0s { unsigned int :0; unsigned long long v1:16; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu15i { unsigned int :0; unsigned long long v1:16; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu15ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu15s { unsigned int :0; unsigned long long v1:16; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu16i { unsigned int :0; unsigned long long v1:16; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu16ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu16s { unsigned int :0; unsigned long long v1:16; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu17i { unsigned int :0; unsigned long long v1:16; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu17ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu1c { unsigned int :0; unsigned long long v1:16; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu1i { unsigned int :0; unsigned long long v1:16; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu1ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu1s { unsigned int :0; unsigned long long v1:16; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu31i { unsigned int :0; unsigned long long v1:16; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu31ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu32i { unsigned int :0; unsigned long long v1:16; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu32ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu33 { unsigned int :0; unsigned long long v1:16; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu7c { unsigned int :0; unsigned long long v1:16; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu7i { unsigned int :0; unsigned long long v1:16; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu7ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu7s { unsigned int :0; unsigned long long v1:16; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu8c { unsigned int :0; unsigned long long v1:16; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu8i { unsigned int :0; unsigned long long v1:16; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu8ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu8s { unsigned int :0; unsigned long long v1:16; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu9i { unsigned int :0; unsigned long long v1:16; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu9ll { unsigned int :0; unsigned long long v1:16; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16ll_BFu9s { unsigned int :0; unsigned long long v1:16; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16ll_C { unsigned int :0; unsigned long long v1:16; char v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_D { unsigned int :0; unsigned long long v1:16; double v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_F { unsigned int :0; unsigned long long v1:16; float v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_I { unsigned int :0; unsigned long long v1:16; int v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_Ip { unsigned int :0; unsigned long long v1:16; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_L { unsigned int :0; unsigned long long v1:16; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_S { unsigned int :0; unsigned long long v1:16; short v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_Uc { unsigned int :0; unsigned long long v1:16; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_Ui { unsigned int :0; unsigned long long v1:16; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_Ul { unsigned int :0; unsigned long long v1:16; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_Us { unsigned int :0; unsigned long long v1:16; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu16ll_Vp { unsigned int :0; unsigned long long v1:16; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu16s { unsigned int :0; unsigned short v1:16; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu0c { unsigned int :0; unsigned short v1:16; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu0i { unsigned int :0; unsigned short v1:16; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu0ll { unsigned int :0; unsigned short v1:16; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu0s { unsigned int :0; unsigned short v1:16; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu15i { unsigned int :0; unsigned short v1:16; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu15ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu15s { unsigned int :0; unsigned short v1:16; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu16i { unsigned int :0; unsigned short v1:16; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu16ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu16s { unsigned int :0; unsigned short v1:16; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu17i { unsigned int :0; unsigned short v1:16; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu17ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu1c { unsigned int :0; unsigned short v1:16; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu1i { unsigned int :0; unsigned short v1:16; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu1ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu1s { unsigned int :0; unsigned short v1:16; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu31i { unsigned int :0; unsigned short v1:16; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu31ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu32i { unsigned int :0; unsigned short v1:16; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu32ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu33 { unsigned int :0; unsigned short v1:16; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu7c { unsigned int :0; unsigned short v1:16; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu7i { unsigned int :0; unsigned short v1:16; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu7ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu7s { unsigned int :0; unsigned short v1:16; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu8c { unsigned int :0; unsigned short v1:16; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu8i { unsigned int :0; unsigned short v1:16; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu8ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu8s { unsigned int :0; unsigned short v1:16; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu9i { unsigned int :0; unsigned short v1:16; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu9ll { unsigned int :0; unsigned short v1:16; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16s_BFu9s { unsigned int :0; unsigned short v1:16; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu16s_C { unsigned int :0; unsigned short v1:16; char v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_D { unsigned int :0; unsigned short v1:16; double v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_F { unsigned int :0; unsigned short v1:16; float v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_I { unsigned int :0; unsigned short v1:16; int v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_Ip { unsigned int :0; unsigned short v1:16; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_L { unsigned int :0; unsigned short v1:16; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_S { unsigned int :0; unsigned short v1:16; short v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_Uc { unsigned int :0; unsigned short v1:16; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_Ui { unsigned int :0; unsigned short v1:16; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_Ul { unsigned int :0; unsigned short v1:16; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_Us { unsigned int :0; unsigned short v1:16; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu16s_Vp { unsigned int :0; unsigned short v1:16; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu17i { unsigned int :0; unsigned int v1:17; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu0c { unsigned int :0; unsigned int v1:17; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu0i { unsigned int :0; unsigned int v1:17; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu0ll { unsigned int :0; unsigned int v1:17; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu0s { unsigned int :0; unsigned int v1:17; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu15i { unsigned int :0; unsigned int v1:17; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu15ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu15s { unsigned int :0; unsigned int v1:17; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu16i { unsigned int :0; unsigned int v1:17; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu16ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu16s { unsigned int :0; unsigned int v1:17; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu17i { unsigned int :0; unsigned int v1:17; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu17ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu1c { unsigned int :0; unsigned int v1:17; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu1i { unsigned int :0; unsigned int v1:17; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu1ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu1s { unsigned int :0; unsigned int v1:17; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu31i { unsigned int :0; unsigned int v1:17; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu31ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu32i { unsigned int :0; unsigned int v1:17; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu32ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu33 { unsigned int :0; unsigned int v1:17; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu7c { unsigned int :0; unsigned int v1:17; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu7i { unsigned int :0; unsigned int v1:17; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu7ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu7s { unsigned int :0; unsigned int v1:17; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu8c { unsigned int :0; unsigned int v1:17; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu8i { unsigned int :0; unsigned int v1:17; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu8ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu8s { unsigned int :0; unsigned int v1:17; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu9i { unsigned int :0; unsigned int v1:17; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu9ll { unsigned int :0; unsigned int v1:17; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu17i_BFu9s { unsigned int :0; unsigned int v1:17; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu17i_C { unsigned int :0; unsigned int v1:17; char v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_D { unsigned int :0; unsigned int v1:17; double v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_F { unsigned int :0; unsigned int v1:17; float v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_I { unsigned int :0; unsigned int v1:17; int v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_Ip { unsigned int :0; unsigned int v1:17; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_L { unsigned int :0; unsigned int v1:17; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_S { unsigned int :0; unsigned int v1:17; short v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_Uc { unsigned int :0; unsigned int v1:17; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_Ui { unsigned int :0; unsigned int v1:17; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_Ul { unsigned int :0; unsigned int v1:17; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_Us { unsigned int :0; unsigned int v1:17; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu17i_Vp { unsigned int :0; unsigned int v1:17; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll { unsigned int :0; unsigned long long v1:17; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu0c { unsigned int :0; unsigned long long v1:17; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu0i { unsigned int :0; unsigned long long v1:17; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu0ll { unsigned int :0; unsigned long long v1:17; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu0s { unsigned int :0; unsigned long long v1:17; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu15i { unsigned int :0; unsigned long long v1:17; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu15ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu15s { unsigned int :0; unsigned long long v1:17; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu16i { unsigned int :0; unsigned long long v1:17; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu16ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu16s { unsigned int :0; unsigned long long v1:17; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu17i { unsigned int :0; unsigned long long v1:17; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu17ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu1c { unsigned int :0; unsigned long long v1:17; unsigned char v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu1i { unsigned int :0; unsigned long long v1:17; unsigned int v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu1ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu1s { unsigned int :0; unsigned long long v1:17; unsigned short v2:1; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu31i { unsigned int :0; unsigned long long v1:17; unsigned int v2:31; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu31ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:31; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu32i { unsigned int :0; unsigned long long v1:17; unsigned int v2:32; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu32ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:32; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu33 { unsigned int :0; unsigned long long v1:17; unsigned long long v2:33; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu7c { unsigned int :0; unsigned long long v1:17; unsigned char v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu7i { unsigned int :0; unsigned long long v1:17; unsigned int v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu7ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu7s { unsigned int :0; unsigned long long v1:17; unsigned short v2:7; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu8c { unsigned int :0; unsigned long long v1:17; unsigned char v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu8i { unsigned int :0; unsigned long long v1:17; unsigned int v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu8ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu8s { unsigned int :0; unsigned long long v1:17; unsigned short v2:8; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu9i { unsigned int :0; unsigned long long v1:17; unsigned int v2:9; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu9ll { unsigned int :0; unsigned long long v1:17; unsigned long long v2:9; };
struct __attribute__((packed)) aBFu0i_BFu17ll_BFu9s { unsigned int :0; unsigned long long v1:17; unsigned short v2:9; };
struct __attribute__((packed)) aBFu0i_BFu17ll_C { unsigned int :0; unsigned long long v1:17; char v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_D { unsigned int :0; unsigned long long v1:17; double v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_F { unsigned int :0; unsigned long long v1:17; float v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_I { unsigned int :0; unsigned long long v1:17; int v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_Ip { unsigned int :0; unsigned long long v1:17; int * v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_L { unsigned int :0; unsigned long long v1:17; long long v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_S { unsigned int :0; unsigned long long v1:17; short v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_Uc { unsigned int :0; unsigned long long v1:17; unsigned char v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_Ui { unsigned int :0; unsigned long long v1:17; unsigned int v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_Ul { unsigned int :0; unsigned long long v1:17; unsigned long long v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_Us { unsigned int :0; unsigned long long v1:17; unsigned short v2; };
struct __attribute__((packed)) aBFu0i_BFu17ll_Vp { unsigned int :0; unsigned long long v1:17; void * v2; };
struct __attribute__((packed)) aBFu0i_BFu1c { unsigned int :0; unsigned char v1:1; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu0c { unsigned int :0; unsigned char v1:1; unsigned char :0; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu0i { unsigned int :0; unsigned char v1:1; unsigned int :0; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu0ll { unsigned int :0; unsigned char v1:1; unsigned long long :0; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu0s { unsigned int :0; unsigned char v1:1; unsigned short :0; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu15i { unsigned int :0; unsigned char v1:1; unsigned int v2:15; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu15ll { unsigned int :0; unsigned char v1:1; unsigned long long v2:15; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu15s { unsigned int :0; unsigned char v1:1; unsigned short v2:15; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu16i { unsigned int :0; unsigned char v1:1; unsigned int v2:16; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu16ll { unsigned int :0; unsigned char v1:1; unsigned long long v2:16; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu16s { unsigned int :0; unsigned char v1:1; unsigned short v2:16; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu17i { unsigned int :0; unsigned char v1:1; unsigned int v2:17; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu17ll { unsigned int :0; unsigned char v1:1; unsigned long long v2:17; };
struct __attribute__((packed)) aBFu0i_BFu1c_BFu1c { unsigned int :0; unsigned char v1:1; unsigned char v2:1; };


static void Test_aBFu0c_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFs0s, aBFu0c_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFu0c, aBFu0c_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFu0i, aBFu0c_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFu0ll, aBFu0c_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFs0s_BFu0s, aBFu0c_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c, aBFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFs0c, aBFu0c_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFs0i, aBFu0c_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFs0ll, aBFu0c_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFs0s, aBFu0c_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFu0c, aBFu0c_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFu0i, aBFu0c_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFu0ll, aBFu0c_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0c_BFu0s, aBFu0c_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i, aBFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFs0c, aBFu0c_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFs0i, aBFu0c_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFs0ll, aBFu0c_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFs0s, aBFu0c_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFu0c, aBFu0c_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFu0i, aBFu0c_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFu0ll, aBFu0c_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0i_BFu0s, aBFu0c_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll, aBFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFs0c, aBFu0c_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFs0i, aBFu0c_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFs0ll, aBFu0c_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFs0s, aBFu0c_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFu0c, aBFu0c_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFu0i, aBFu0c_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFu0ll, aBFu0c_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0ll_BFu0s, aBFu0c_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s, aBFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFs0c, aBFu0c_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFs0i, aBFu0c_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFs0ll, aBFu0c_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFs0s, aBFu0c_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFu0c, aBFu0c_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFu0i, aBFu0c_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFu0ll, aBFu0c_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0c_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu0s_BFu0s, aBFu0c_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu15i, aBFu0c_BFu0s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu15ll, aBFu0c_BFu0s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu0s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu0s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu15s, aBFu0c_BFu0s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu16i, aBFu0c_BFu0s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu16ll, aBFu0c_BFu0s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu0s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu0s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu16s, aBFu0c_BFu0s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu17i, aBFu0c_BFu0s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu0s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu0s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu0s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu17ll, aBFu0c_BFu0s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu1c, aBFu0c_BFu0s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu1i, aBFu0c_BFu0s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu1ll, aBFu0c_BFu0s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu0s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu1s, aBFu0c_BFu0s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu31i, aBFu0c_BFu0s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu0s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu0s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu31ll, aBFu0c_BFu0s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu32i, aBFu0c_BFu0s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu0s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu0s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu32ll, aBFu0c_BFu0s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu0s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu0s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu0s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu33, aBFu0c_BFu0s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu7c, aBFu0c_BFu0s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu7i, aBFu0c_BFu0s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu7ll, aBFu0c_BFu0s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu0s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu0s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu7s, aBFu0c_BFu0s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu8c, aBFu0c_BFu0s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu8i, aBFu0c_BFu0s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu8ll, aBFu0c_BFu0s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu0s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu0s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu8s, aBFu0c_BFu0s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu9i, aBFu0c_BFu0s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu9ll, aBFu0c_BFu0s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu0s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu0s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu0s_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu0s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu0s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_BFu9s, aBFu0c_BFu0s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu0s_C()
{
  {
    init_simple_test("aBFu0c_BFu0s_C");
    static STRUCT_IF_C aBFu0c_BFu0s_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_C, aBFu0c_BFu0s_C)
//============================================================================



static void Test_aBFu0c_BFu0s_D()
{
  {
    init_simple_test("aBFu0c_BFu0s_D");
    static STRUCT_IF_C aBFu0c_BFu0s_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_D, aBFu0c_BFu0s_D)
//============================================================================



static void Test_aBFu0c_BFu0s_F()
{
  {
    init_simple_test("aBFu0c_BFu0s_F");
    static STRUCT_IF_C aBFu0c_BFu0s_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_F, aBFu0c_BFu0s_F)
//============================================================================



static void Test_aBFu0c_BFu0s_I()
{
  {
    init_simple_test("aBFu0c_BFu0s_I");
    static STRUCT_IF_C aBFu0c_BFu0s_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_I, aBFu0c_BFu0s_I)
//============================================================================



static void Test_aBFu0c_BFu0s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu0s_Ip");
    static STRUCT_IF_C aBFu0c_BFu0s_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_Ip, aBFu0c_BFu0s_Ip)
//============================================================================



static void Test_aBFu0c_BFu0s_L()
{
  {
    init_simple_test("aBFu0c_BFu0s_L");
    static STRUCT_IF_C aBFu0c_BFu0s_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_L, aBFu0c_BFu0s_L)
//============================================================================



static void Test_aBFu0c_BFu0s_S()
{
  {
    init_simple_test("aBFu0c_BFu0s_S");
    static STRUCT_IF_C aBFu0c_BFu0s_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_S, aBFu0c_BFu0s_S)
//============================================================================



static void Test_aBFu0c_BFu0s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu0s_Uc");
    static STRUCT_IF_C aBFu0c_BFu0s_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu0s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_Uc, aBFu0c_BFu0s_Uc)
//============================================================================



static void Test_aBFu0c_BFu0s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu0s_Ui");
    static STRUCT_IF_C aBFu0c_BFu0s_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu0s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_Ui, aBFu0c_BFu0s_Ui)
//============================================================================



static void Test_aBFu0c_BFu0s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu0s_Ul");
    static STRUCT_IF_C aBFu0c_BFu0s_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu0s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_Ul, aBFu0c_BFu0s_Ul)
//============================================================================



static void Test_aBFu0c_BFu0s_Us()
{
  {
    init_simple_test("aBFu0c_BFu0s_Us");
    static STRUCT_IF_C aBFu0c_BFu0s_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu0s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_Us, aBFu0c_BFu0s_Us)
//============================================================================



static void Test_aBFu0c_BFu0s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu0s_Vp");
    static STRUCT_IF_C aBFu0c_BFu0s_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu0s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu0s_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_BFu0s_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu0s_Vp, aBFu0c_BFu0s_Vp)
//============================================================================



static void Test_aBFu0c_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i, aBFu0c_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu0c, aBFu0c_BFu15i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu15i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu0i, aBFu0c_BFu15i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu15i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu0ll, aBFu0c_BFu15i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu0s, aBFu0c_BFu15i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu15i, aBFu0c_BFu15i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu15ll, aBFu0c_BFu15i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu15s, aBFu0c_BFu15i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu16i, aBFu0c_BFu15i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu16ll, aBFu0c_BFu15i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu16s, aBFu0c_BFu15i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0c_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu17i, aBFu0c_BFu15i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0c_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu17ll, aBFu0c_BFu15i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu1c, aBFu0c_BFu15i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu1i, aBFu0c_BFu15i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu1ll, aBFu0c_BFu15i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu1s, aBFu0c_BFu15i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0c_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu15i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu31i, aBFu0c_BFu15i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0c_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu15i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu31ll, aBFu0c_BFu15i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0c_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu15i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu32i, aBFu0c_BFu15i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0c_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu15i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu32ll, aBFu0c_BFu15i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "aBFu0c_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu15i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu33, aBFu0c_BFu15i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu7c, aBFu0c_BFu15i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu7i, aBFu0c_BFu15i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu7ll, aBFu0c_BFu15i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu7s, aBFu0c_BFu15i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu8c, aBFu0c_BFu15i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu8i, aBFu0c_BFu15i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu8ll, aBFu0c_BFu15i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu8s, aBFu0c_BFu15i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu9i, aBFu0c_BFu15i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu9ll, aBFu0c_BFu15i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu15i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu15i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu15i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_BFu9s, aBFu0c_BFu15i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu15i_C()
{
  {
    init_simple_test("aBFu0c_BFu15i_C");
    static STRUCT_IF_C aBFu0c_BFu15i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_C, aBFu0c_BFu15i_C)
//============================================================================



static void Test_aBFu0c_BFu15i_D()
{
  {
    init_simple_test("aBFu0c_BFu15i_D");
    static STRUCT_IF_C aBFu0c_BFu15i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_D, aBFu0c_BFu15i_D)
//============================================================================



static void Test_aBFu0c_BFu15i_F()
{
  {
    init_simple_test("aBFu0c_BFu15i_F");
    static STRUCT_IF_C aBFu0c_BFu15i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_F, aBFu0c_BFu15i_F)
//============================================================================



static void Test_aBFu0c_BFu15i_I()
{
  {
    init_simple_test("aBFu0c_BFu15i_I");
    static STRUCT_IF_C aBFu0c_BFu15i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_I, aBFu0c_BFu15i_I)
//============================================================================



static void Test_aBFu0c_BFu15i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu15i_Ip");
    static STRUCT_IF_C aBFu0c_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_Ip, aBFu0c_BFu15i_Ip)
//============================================================================



static void Test_aBFu0c_BFu15i_L()
{
  {
    init_simple_test("aBFu0c_BFu15i_L");
    static STRUCT_IF_C aBFu0c_BFu15i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_L, aBFu0c_BFu15i_L)
//============================================================================



static void Test_aBFu0c_BFu15i_S()
{
  {
    init_simple_test("aBFu0c_BFu15i_S");
    static STRUCT_IF_C aBFu0c_BFu15i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_S, aBFu0c_BFu15i_S)
//============================================================================



static void Test_aBFu0c_BFu15i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu15i_Uc");
    static STRUCT_IF_C aBFu0c_BFu15i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_Uc, aBFu0c_BFu15i_Uc)
//============================================================================



static void Test_aBFu0c_BFu15i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu15i_Ui");
    static STRUCT_IF_C aBFu0c_BFu15i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_Ui, aBFu0c_BFu15i_Ui)
//============================================================================



static void Test_aBFu0c_BFu15i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu15i_Ul");
    static STRUCT_IF_C aBFu0c_BFu15i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_Ul, aBFu0c_BFu15i_Ul)
//============================================================================



static void Test_aBFu0c_BFu15i_Us()
{
  {
    init_simple_test("aBFu0c_BFu15i_Us");
    static STRUCT_IF_C aBFu0c_BFu15i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_Us, aBFu0c_BFu15i_Us)
//============================================================================



static void Test_aBFu0c_BFu15i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu15i_Vp");
    static STRUCT_IF_C aBFu0c_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15i_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15i_Vp, aBFu0c_BFu15i_Vp)
//============================================================================



static void Test_aBFu0c_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll, aBFu0c_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu0c, aBFu0c_BFu15ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu15ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu0i, aBFu0c_BFu15ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu15ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu0ll, aBFu0c_BFu15ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu0s, aBFu0c_BFu15ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu15i, aBFu0c_BFu15ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu15ll, aBFu0c_BFu15ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu15s, aBFu0c_BFu15ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu16i, aBFu0c_BFu15ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu16ll, aBFu0c_BFu15ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu16s, aBFu0c_BFu15ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0c_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu17i, aBFu0c_BFu15ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0c_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu17ll, aBFu0c_BFu15ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu1c, aBFu0c_BFu15ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu1i, aBFu0c_BFu15ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu1ll, aBFu0c_BFu15ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu1s, aBFu0c_BFu15ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0c_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu15ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu31i, aBFu0c_BFu15ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0c_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu15ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu31ll, aBFu0c_BFu15ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0c_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu15ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu32i, aBFu0c_BFu15ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0c_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu15ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu32ll, aBFu0c_BFu15ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "aBFu0c_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu15ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu33, aBFu0c_BFu15ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu7c, aBFu0c_BFu15ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu7i, aBFu0c_BFu15ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu7ll, aBFu0c_BFu15ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu7s, aBFu0c_BFu15ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu8c, aBFu0c_BFu15ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu8i, aBFu0c_BFu15ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu8ll, aBFu0c_BFu15ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu8s, aBFu0c_BFu15ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu9i, aBFu0c_BFu15ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu9ll, aBFu0c_BFu15ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu15ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu15ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_BFu9s, aBFu0c_BFu15ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu15ll_C()
{
  {
    init_simple_test("aBFu0c_BFu15ll_C");
    static STRUCT_IF_C aBFu0c_BFu15ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_C, aBFu0c_BFu15ll_C)
//============================================================================



static void Test_aBFu0c_BFu15ll_D()
{
  {
    init_simple_test("aBFu0c_BFu15ll_D");
    static STRUCT_IF_C aBFu0c_BFu15ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_D, aBFu0c_BFu15ll_D)
//============================================================================



static void Test_aBFu0c_BFu15ll_F()
{
  {
    init_simple_test("aBFu0c_BFu15ll_F");
    static STRUCT_IF_C aBFu0c_BFu15ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_F, aBFu0c_BFu15ll_F)
//============================================================================



static void Test_aBFu0c_BFu15ll_I()
{
  {
    init_simple_test("aBFu0c_BFu15ll_I");
    static STRUCT_IF_C aBFu0c_BFu15ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_I, aBFu0c_BFu15ll_I)
//============================================================================



static void Test_aBFu0c_BFu15ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu15ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_Ip, aBFu0c_BFu15ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu15ll_L()
{
  {
    init_simple_test("aBFu0c_BFu15ll_L");
    static STRUCT_IF_C aBFu0c_BFu15ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_L, aBFu0c_BFu15ll_L)
//============================================================================



static void Test_aBFu0c_BFu15ll_S()
{
  {
    init_simple_test("aBFu0c_BFu15ll_S");
    static STRUCT_IF_C aBFu0c_BFu15ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_S, aBFu0c_BFu15ll_S)
//============================================================================



static void Test_aBFu0c_BFu15ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu15ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu15ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_Uc, aBFu0c_BFu15ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu15ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu15ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu15ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_Ui, aBFu0c_BFu15ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu15ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu15ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu15ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_Ul, aBFu0c_BFu15ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu15ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu15ll_Us");
    static STRUCT_IF_C aBFu0c_BFu15ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_Us, aBFu0c_BFu15ll_Us)
//============================================================================



static void Test_aBFu0c_BFu15ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu15ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15ll_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15ll_Vp, aBFu0c_BFu15ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s, aBFu0c_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu0c, aBFu0c_BFu15s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu15s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu0i, aBFu0c_BFu15s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu15s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu0ll, aBFu0c_BFu15s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu0s, aBFu0c_BFu15s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu15i, aBFu0c_BFu15s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu15ll, aBFu0c_BFu15s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0c_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu15s, aBFu0c_BFu15s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu16i, aBFu0c_BFu15s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu16ll, aBFu0c_BFu15s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0c_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu16s, aBFu0c_BFu15s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0c_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu17i, aBFu0c_BFu15s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0c_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu17ll, aBFu0c_BFu15s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu1c, aBFu0c_BFu15s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu1i, aBFu0c_BFu15s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu1ll, aBFu0c_BFu15s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu15s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0c_BFu15s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu1s, aBFu0c_BFu15s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0c_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu15s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu31i, aBFu0c_BFu15s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0c_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu15s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu31ll, aBFu0c_BFu15s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0c_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu15s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu32i, aBFu0c_BFu15s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0c_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu15s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu32ll, aBFu0c_BFu15s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "aBFu0c_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu15s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu33, aBFu0c_BFu15s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu7c, aBFu0c_BFu15s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu7i, aBFu0c_BFu15s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu7ll, aBFu0c_BFu15s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0c_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu15s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu7s, aBFu0c_BFu15s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu8c, aBFu0c_BFu15s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu8i, aBFu0c_BFu15s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu8ll, aBFu0c_BFu15s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0c_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu8s, aBFu0c_BFu15s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu9i, aBFu0c_BFu15s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu9ll, aBFu0c_BFu15s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu15s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu15s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu15s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0c_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_BFu9s, aBFu0c_BFu15s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu15s_C()
{
  {
    init_simple_test("aBFu0c_BFu15s_C");
    static STRUCT_IF_C aBFu0c_BFu15s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_C, aBFu0c_BFu15s_C)
//============================================================================



static void Test_aBFu0c_BFu15s_D()
{
  {
    init_simple_test("aBFu0c_BFu15s_D");
    static STRUCT_IF_C aBFu0c_BFu15s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_D, aBFu0c_BFu15s_D)
//============================================================================



static void Test_aBFu0c_BFu15s_F()
{
  {
    init_simple_test("aBFu0c_BFu15s_F");
    static STRUCT_IF_C aBFu0c_BFu15s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_F, aBFu0c_BFu15s_F)
//============================================================================



static void Test_aBFu0c_BFu15s_I()
{
  {
    init_simple_test("aBFu0c_BFu15s_I");
    static STRUCT_IF_C aBFu0c_BFu15s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_I, aBFu0c_BFu15s_I)
//============================================================================



static void Test_aBFu0c_BFu15s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu15s_Ip");
    static STRUCT_IF_C aBFu0c_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_Ip, aBFu0c_BFu15s_Ip)
//============================================================================



static void Test_aBFu0c_BFu15s_L()
{
  {
    init_simple_test("aBFu0c_BFu15s_L");
    static STRUCT_IF_C aBFu0c_BFu15s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_L, aBFu0c_BFu15s_L)
//============================================================================



static void Test_aBFu0c_BFu15s_S()
{
  {
    init_simple_test("aBFu0c_BFu15s_S");
    static STRUCT_IF_C aBFu0c_BFu15s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_S, aBFu0c_BFu15s_S)
//============================================================================



static void Test_aBFu0c_BFu15s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu15s_Uc");
    static STRUCT_IF_C aBFu0c_BFu15s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_Uc, aBFu0c_BFu15s_Uc)
//============================================================================



static void Test_aBFu0c_BFu15s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu15s_Ui");
    static STRUCT_IF_C aBFu0c_BFu15s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu15s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_Ui, aBFu0c_BFu15s_Ui)
//============================================================================



static void Test_aBFu0c_BFu15s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu15s_Ul");
    static STRUCT_IF_C aBFu0c_BFu15s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_Ul, aBFu0c_BFu15s_Ul)
//============================================================================



static void Test_aBFu0c_BFu15s_Us()
{
  {
    init_simple_test("aBFu0c_BFu15s_Us");
    static STRUCT_IF_C aBFu0c_BFu15s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_Us, aBFu0c_BFu15s_Us)
//============================================================================



static void Test_aBFu0c_BFu15s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu15s_Vp");
    static STRUCT_IF_C aBFu0c_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0c_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu15s_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu15s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu15s_Vp, aBFu0c_BFu15s_Vp)
//============================================================================



static void Test_aBFu0c_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i, aBFu0c_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu0c, aBFu0c_BFu16i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu16i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu0i, aBFu0c_BFu16i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu16i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu0ll, aBFu0c_BFu16i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu0s, aBFu0c_BFu16i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu15i, aBFu0c_BFu16i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu15ll, aBFu0c_BFu16i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu15s, aBFu0c_BFu16i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu16i, aBFu0c_BFu16i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu16ll, aBFu0c_BFu16i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu16s, aBFu0c_BFu16i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu16i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu16i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu17i, aBFu0c_BFu16i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu16i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu16i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu17ll, aBFu0c_BFu16i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu1c, aBFu0c_BFu16i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu1i, aBFu0c_BFu16i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu1ll, aBFu0c_BFu16i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu1s, aBFu0c_BFu16i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu16i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu31i, aBFu0c_BFu16i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu16i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu31ll, aBFu0c_BFu16i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu16i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu32i, aBFu0c_BFu16i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu16i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu32ll, aBFu0c_BFu16i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu16i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0c_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu16i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu33, aBFu0c_BFu16i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu7c, aBFu0c_BFu16i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu7i, aBFu0c_BFu16i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu7ll, aBFu0c_BFu16i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu7s, aBFu0c_BFu16i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu8c, aBFu0c_BFu16i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu8i, aBFu0c_BFu16i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu8ll, aBFu0c_BFu16i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu8s, aBFu0c_BFu16i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu9i, aBFu0c_BFu16i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu9ll, aBFu0c_BFu16i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu16i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu16i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu16i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_BFu9s, aBFu0c_BFu16i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu16i_C()
{
  {
    init_simple_test("aBFu0c_BFu16i_C");
    static STRUCT_IF_C aBFu0c_BFu16i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_C, aBFu0c_BFu16i_C)
//============================================================================



static void Test_aBFu0c_BFu16i_D()
{
  {
    init_simple_test("aBFu0c_BFu16i_D");
    static STRUCT_IF_C aBFu0c_BFu16i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_D, aBFu0c_BFu16i_D)
//============================================================================



static void Test_aBFu0c_BFu16i_F()
{
  {
    init_simple_test("aBFu0c_BFu16i_F");
    static STRUCT_IF_C aBFu0c_BFu16i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_F, aBFu0c_BFu16i_F)
//============================================================================



static void Test_aBFu0c_BFu16i_I()
{
  {
    init_simple_test("aBFu0c_BFu16i_I");
    static STRUCT_IF_C aBFu0c_BFu16i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_I, aBFu0c_BFu16i_I)
//============================================================================



static void Test_aBFu0c_BFu16i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu16i_Ip");
    static STRUCT_IF_C aBFu0c_BFu16i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu16i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_Ip, aBFu0c_BFu16i_Ip)
//============================================================================



static void Test_aBFu0c_BFu16i_L()
{
  {
    init_simple_test("aBFu0c_BFu16i_L");
    static STRUCT_IF_C aBFu0c_BFu16i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_L, aBFu0c_BFu16i_L)
//============================================================================



static void Test_aBFu0c_BFu16i_S()
{
  {
    init_simple_test("aBFu0c_BFu16i_S");
    static STRUCT_IF_C aBFu0c_BFu16i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_S, aBFu0c_BFu16i_S)
//============================================================================



static void Test_aBFu0c_BFu16i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu16i_Uc");
    static STRUCT_IF_C aBFu0c_BFu16i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_Uc, aBFu0c_BFu16i_Uc)
//============================================================================



static void Test_aBFu0c_BFu16i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu16i_Ui");
    static STRUCT_IF_C aBFu0c_BFu16i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_Ui, aBFu0c_BFu16i_Ui)
//============================================================================



static void Test_aBFu0c_BFu16i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu16i_Ul");
    static STRUCT_IF_C aBFu0c_BFu16i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_Ul, aBFu0c_BFu16i_Ul)
//============================================================================



static void Test_aBFu0c_BFu16i_Us()
{
  {
    init_simple_test("aBFu0c_BFu16i_Us");
    static STRUCT_IF_C aBFu0c_BFu16i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_Us, aBFu0c_BFu16i_Us)
//============================================================================



static void Test_aBFu0c_BFu16i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu16i_Vp");
    static STRUCT_IF_C aBFu0c_BFu16i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu16i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16i_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16i_Vp, aBFu0c_BFu16i_Vp)
//============================================================================



static void Test_aBFu0c_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll, aBFu0c_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu0c, aBFu0c_BFu16ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu16ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu0i, aBFu0c_BFu16ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu16ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu0ll, aBFu0c_BFu16ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu0s, aBFu0c_BFu16ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu15i, aBFu0c_BFu16ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu15ll, aBFu0c_BFu16ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu15s, aBFu0c_BFu16ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu16i, aBFu0c_BFu16ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu16ll, aBFu0c_BFu16ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu16s, aBFu0c_BFu16ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu16ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu16ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu17i, aBFu0c_BFu16ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu16ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu16ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu17ll, aBFu0c_BFu16ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu1c, aBFu0c_BFu16ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu1i, aBFu0c_BFu16ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu1ll, aBFu0c_BFu16ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu1s, aBFu0c_BFu16ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu16ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu31i, aBFu0c_BFu16ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu16ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu31ll, aBFu0c_BFu16ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu16ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu32i, aBFu0c_BFu16ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu16ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu32ll, aBFu0c_BFu16ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu16ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0c_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu16ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu33, aBFu0c_BFu16ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu7c, aBFu0c_BFu16ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu7i, aBFu0c_BFu16ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu7ll, aBFu0c_BFu16ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu7s, aBFu0c_BFu16ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu8c, aBFu0c_BFu16ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu8i, aBFu0c_BFu16ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu8ll, aBFu0c_BFu16ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu8s, aBFu0c_BFu16ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu9i, aBFu0c_BFu16ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu9ll, aBFu0c_BFu16ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu16ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu16ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu16ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_BFu9s, aBFu0c_BFu16ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu16ll_C()
{
  {
    init_simple_test("aBFu0c_BFu16ll_C");
    static STRUCT_IF_C aBFu0c_BFu16ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_C, aBFu0c_BFu16ll_C)
//============================================================================



static void Test_aBFu0c_BFu16ll_D()
{
  {
    init_simple_test("aBFu0c_BFu16ll_D");
    static STRUCT_IF_C aBFu0c_BFu16ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_D, aBFu0c_BFu16ll_D)
//============================================================================



static void Test_aBFu0c_BFu16ll_F()
{
  {
    init_simple_test("aBFu0c_BFu16ll_F");
    static STRUCT_IF_C aBFu0c_BFu16ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_F, aBFu0c_BFu16ll_F)
//============================================================================



static void Test_aBFu0c_BFu16ll_I()
{
  {
    init_simple_test("aBFu0c_BFu16ll_I");
    static STRUCT_IF_C aBFu0c_BFu16ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_I, aBFu0c_BFu16ll_I)
//============================================================================



static void Test_aBFu0c_BFu16ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu16ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu16ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu16ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_Ip, aBFu0c_BFu16ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu16ll_L()
{
  {
    init_simple_test("aBFu0c_BFu16ll_L");
    static STRUCT_IF_C aBFu0c_BFu16ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_L, aBFu0c_BFu16ll_L)
//============================================================================



static void Test_aBFu0c_BFu16ll_S()
{
  {
    init_simple_test("aBFu0c_BFu16ll_S");
    static STRUCT_IF_C aBFu0c_BFu16ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_S, aBFu0c_BFu16ll_S)
//============================================================================



static void Test_aBFu0c_BFu16ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu16ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu16ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_Uc, aBFu0c_BFu16ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu16ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu16ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu16ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_Ui, aBFu0c_BFu16ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu16ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu16ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu16ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_Ul, aBFu0c_BFu16ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu16ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu16ll_Us");
    static STRUCT_IF_C aBFu0c_BFu16ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_Us, aBFu0c_BFu16ll_Us)
//============================================================================



static void Test_aBFu0c_BFu16ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu16ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu16ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu16ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16ll_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16ll_Vp, aBFu0c_BFu16ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s, aBFu0c_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu0c, aBFu0c_BFu16s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu16s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu0i, aBFu0c_BFu16s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu16s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu0ll, aBFu0c_BFu16s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu16s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu0s, aBFu0c_BFu16s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu15i, aBFu0c_BFu16s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu15ll, aBFu0c_BFu16s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu15s, aBFu0c_BFu16s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu16i, aBFu0c_BFu16s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu16ll, aBFu0c_BFu16s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu16s, aBFu0c_BFu16s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu16s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu16s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu17i, aBFu0c_BFu16s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu16s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu16s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu17ll, aBFu0c_BFu16s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu1c, aBFu0c_BFu16s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu1i, aBFu0c_BFu16s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu1ll, aBFu0c_BFu16s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_BFu16s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu1s, aBFu0c_BFu16s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu16s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu31i, aBFu0c_BFu16s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu16s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu31ll, aBFu0c_BFu16s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu16s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu32i, aBFu0c_BFu16s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu16s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu32ll, aBFu0c_BFu16s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu16s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0c_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu16s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu33, aBFu0c_BFu16s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu7c, aBFu0c_BFu16s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu7i, aBFu0c_BFu16s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu7ll, aBFu0c_BFu16s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu16s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu7s, aBFu0c_BFu16s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu8c, aBFu0c_BFu16s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu8i, aBFu0c_BFu16s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu8ll, aBFu0c_BFu16s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu8s, aBFu0c_BFu16s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu9i, aBFu0c_BFu16s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu9ll, aBFu0c_BFu16s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu16s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu16s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu16s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu16s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_BFu9s, aBFu0c_BFu16s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu16s_C()
{
  {
    init_simple_test("aBFu0c_BFu16s_C");
    static STRUCT_IF_C aBFu0c_BFu16s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_C, aBFu0c_BFu16s_C)
//============================================================================



static void Test_aBFu0c_BFu16s_D()
{
  {
    init_simple_test("aBFu0c_BFu16s_D");
    static STRUCT_IF_C aBFu0c_BFu16s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_D, aBFu0c_BFu16s_D)
//============================================================================



static void Test_aBFu0c_BFu16s_F()
{
  {
    init_simple_test("aBFu0c_BFu16s_F");
    static STRUCT_IF_C aBFu0c_BFu16s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_F, aBFu0c_BFu16s_F)
//============================================================================



static void Test_aBFu0c_BFu16s_I()
{
  {
    init_simple_test("aBFu0c_BFu16s_I");
    static STRUCT_IF_C aBFu0c_BFu16s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_I, aBFu0c_BFu16s_I)
//============================================================================



static void Test_aBFu0c_BFu16s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu16s_Ip");
    static STRUCT_IF_C aBFu0c_BFu16s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu16s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_Ip, aBFu0c_BFu16s_Ip)
//============================================================================



static void Test_aBFu0c_BFu16s_L()
{
  {
    init_simple_test("aBFu0c_BFu16s_L");
    static STRUCT_IF_C aBFu0c_BFu16s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_L, aBFu0c_BFu16s_L)
//============================================================================



static void Test_aBFu0c_BFu16s_S()
{
  {
    init_simple_test("aBFu0c_BFu16s_S");
    static STRUCT_IF_C aBFu0c_BFu16s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_S, aBFu0c_BFu16s_S)
//============================================================================



static void Test_aBFu0c_BFu16s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu16s_Uc");
    static STRUCT_IF_C aBFu0c_BFu16s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_Uc, aBFu0c_BFu16s_Uc)
//============================================================================



static void Test_aBFu0c_BFu16s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu16s_Ui");
    static STRUCT_IF_C aBFu0c_BFu16s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_Ui, aBFu0c_BFu16s_Ui)
//============================================================================



static void Test_aBFu0c_BFu16s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu16s_Ul");
    static STRUCT_IF_C aBFu0c_BFu16s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_Ul, aBFu0c_BFu16s_Ul)
//============================================================================



static void Test_aBFu0c_BFu16s_Us()
{
  {
    init_simple_test("aBFu0c_BFu16s_Us");
    static STRUCT_IF_C aBFu0c_BFu16s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_Us, aBFu0c_BFu16s_Us)
//============================================================================



static void Test_aBFu0c_BFu16s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu16s_Vp");
    static STRUCT_IF_C aBFu0c_BFu16s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu16s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu16s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0c_BFu16s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu16s_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu16s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu16s_Vp, aBFu0c_BFu16s_Vp)
//============================================================================



static void Test_aBFu0c_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i, aBFu0c_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu0c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu0c, aBFu0c_BFu17i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu17i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu0i, aBFu0c_BFu17i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu17i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu0ll, aBFu0c_BFu17i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu17i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu0s, aBFu0c_BFu17i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0c_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu15i, aBFu0c_BFu17i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0c_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu15ll, aBFu0c_BFu17i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0c_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu15s, aBFu0c_BFu17i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0c_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu16i, aBFu0c_BFu17i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0c_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu16ll, aBFu0c_BFu17i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0c_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu16s, aBFu0c_BFu17i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0c_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu17i, aBFu0c_BFu17i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0c_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu17ll, aBFu0c_BFu17i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu1c, aBFu0c_BFu17i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu1i, aBFu0c_BFu17i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu1ll, aBFu0c_BFu17i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu1s, aBFu0c_BFu17i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu17i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0c_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu17i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu31i, aBFu0c_BFu17i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu17i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0c_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu17i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu31ll, aBFu0c_BFu17i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0c_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu17i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu32i, aBFu0c_BFu17i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0c_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu17i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu32ll, aBFu0c_BFu17i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, 1, "aBFu0c_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu33, aBFu0c_BFu17i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu7c, aBFu0c_BFu17i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu7i, aBFu0c_BFu17i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu7ll, aBFu0c_BFu17i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu7s, aBFu0c_BFu17i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu8c, aBFu0c_BFu17i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu8i, aBFu0c_BFu17i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu8ll, aBFu0c_BFu17i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu8s, aBFu0c_BFu17i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0c_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu9i, aBFu0c_BFu17i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0c_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu9ll, aBFu0c_BFu17i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu17i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu17i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu17i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0c_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_BFu9s, aBFu0c_BFu17i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu17i_C()
{
  {
    init_simple_test("aBFu0c_BFu17i_C");
    static STRUCT_IF_C aBFu0c_BFu17i_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_C)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_C");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_C");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_C, aBFu0c_BFu17i_C)
//============================================================================



static void Test_aBFu0c_BFu17i_D()
{
  {
    init_simple_test("aBFu0c_BFu17i_D");
    static STRUCT_IF_C aBFu0c_BFu17i_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_BFu17i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_D)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_D");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_D");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_D, aBFu0c_BFu17i_D)
//============================================================================



static void Test_aBFu0c_BFu17i_F()
{
  {
    init_simple_test("aBFu0c_BFu17i_F");
    static STRUCT_IF_C aBFu0c_BFu17i_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_F)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_F");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_F");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_F, aBFu0c_BFu17i_F)
//============================================================================



static void Test_aBFu0c_BFu17i_I()
{
  {
    init_simple_test("aBFu0c_BFu17i_I");
    static STRUCT_IF_C aBFu0c_BFu17i_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_I)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_I");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_I");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_I, aBFu0c_BFu17i_I)
//============================================================================



static void Test_aBFu0c_BFu17i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu17i_Ip");
    static STRUCT_IF_C aBFu0c_BFu17i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_BFu17i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_Ip");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_Ip, aBFu0c_BFu17i_Ip)
//============================================================================



static void Test_aBFu0c_BFu17i_L()
{
  {
    init_simple_test("aBFu0c_BFu17i_L");
    static STRUCT_IF_C aBFu0c_BFu17i_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_BFu17i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_L)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_L");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_L");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_L, aBFu0c_BFu17i_L)
//============================================================================



static void Test_aBFu0c_BFu17i_S()
{
  {
    init_simple_test("aBFu0c_BFu17i_S");
    static STRUCT_IF_C aBFu0c_BFu17i_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_S)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_S");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_S");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_S, aBFu0c_BFu17i_S)
//============================================================================



static void Test_aBFu0c_BFu17i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu17i_Uc");
    static STRUCT_IF_C aBFu0c_BFu17i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_Uc");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_Uc, aBFu0c_BFu17i_Uc)
//============================================================================



static void Test_aBFu0c_BFu17i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu17i_Ui");
    static STRUCT_IF_C aBFu0c_BFu17i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_Ui");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_Ui, aBFu0c_BFu17i_Ui)
//============================================================================



static void Test_aBFu0c_BFu17i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu17i_Ul");
    static STRUCT_IF_C aBFu0c_BFu17i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_BFu17i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_Ul");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_Ul, aBFu0c_BFu17i_Ul)
//============================================================================



static void Test_aBFu0c_BFu17i_Us()
{
  {
    init_simple_test("aBFu0c_BFu17i_Us");
    static STRUCT_IF_C aBFu0c_BFu17i_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_Us");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_Us");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_Us, aBFu0c_BFu17i_Us)
//============================================================================



static void Test_aBFu0c_BFu17i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu17i_Vp");
    static STRUCT_IF_C aBFu0c_BFu17i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_BFu17i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17i_Vp");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17i_Vp, aBFu0c_BFu17i_Vp)
//============================================================================



static void Test_aBFu0c_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll, aBFu0c_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu0c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu0c, aBFu0c_BFu17ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu17ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu0i, aBFu0c_BFu17ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu17ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu0ll, aBFu0c_BFu17ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu17ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu0s, aBFu0c_BFu17ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0c_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu15i, aBFu0c_BFu17ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0c_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu15ll, aBFu0c_BFu17ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0c_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu15s, aBFu0c_BFu17ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0c_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu16i, aBFu0c_BFu17ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0c_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu16ll, aBFu0c_BFu17ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0c_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu16s, aBFu0c_BFu17ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0c_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu17i, aBFu0c_BFu17ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0c_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu17ll, aBFu0c_BFu17ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu1c, aBFu0c_BFu17ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu1i, aBFu0c_BFu17ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu1ll, aBFu0c_BFu17ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0c_BFu17ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu1s, aBFu0c_BFu17ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu17ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0c_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu17ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu31i, aBFu0c_BFu17ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu17ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0c_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu17ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu31ll, aBFu0c_BFu17ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0c_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu17ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu32i, aBFu0c_BFu17ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0c_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu17ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu32ll, aBFu0c_BFu17ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, 1, "aBFu0c_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu33, aBFu0c_BFu17ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu7c, aBFu0c_BFu17ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu7i, aBFu0c_BFu17ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu7ll, aBFu0c_BFu17ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu17ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0c_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu17ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu7s, aBFu0c_BFu17ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu8c, aBFu0c_BFu17ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu8i, aBFu0c_BFu17ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu8ll, aBFu0c_BFu17ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0c_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu8s, aBFu0c_BFu17ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0c_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu9i, aBFu0c_BFu17ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0c_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu9ll, aBFu0c_BFu17ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu17ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu17ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0c_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_BFu9s, aBFu0c_BFu17ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu17ll_C()
{
  {
    init_simple_test("aBFu0c_BFu17ll_C");
    static STRUCT_IF_C aBFu0c_BFu17ll_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_C");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_C");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_C, aBFu0c_BFu17ll_C)
//============================================================================



static void Test_aBFu0c_BFu17ll_D()
{
  {
    init_simple_test("aBFu0c_BFu17ll_D");
    static STRUCT_IF_C aBFu0c_BFu17ll_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_BFu17ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_D");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_D");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_D, aBFu0c_BFu17ll_D)
//============================================================================



static void Test_aBFu0c_BFu17ll_F()
{
  {
    init_simple_test("aBFu0c_BFu17ll_F");
    static STRUCT_IF_C aBFu0c_BFu17ll_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_F");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_F");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_F, aBFu0c_BFu17ll_F)
//============================================================================



static void Test_aBFu0c_BFu17ll_I()
{
  {
    init_simple_test("aBFu0c_BFu17ll_I");
    static STRUCT_IF_C aBFu0c_BFu17ll_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_I");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_I");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_I, aBFu0c_BFu17ll_I)
//============================================================================



static void Test_aBFu0c_BFu17ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu17ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu17ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_BFu17ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_Ip");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_Ip, aBFu0c_BFu17ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu17ll_L()
{
  {
    init_simple_test("aBFu0c_BFu17ll_L");
    static STRUCT_IF_C aBFu0c_BFu17ll_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_BFu17ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_L");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_L");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_L, aBFu0c_BFu17ll_L)
//============================================================================



static void Test_aBFu0c_BFu17ll_S()
{
  {
    init_simple_test("aBFu0c_BFu17ll_S");
    static STRUCT_IF_C aBFu0c_BFu17ll_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_S");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_S");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_S, aBFu0c_BFu17ll_S)
//============================================================================



static void Test_aBFu0c_BFu17ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu17ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu17ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu17ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_Uc");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_Uc, aBFu0c_BFu17ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu17ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu17ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu17ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu17ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_Ui");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_Ui, aBFu0c_BFu17ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu17ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu17ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu17ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_BFu17ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_Ul");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_Ul, aBFu0c_BFu17ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu17ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu17ll_Us");
    static STRUCT_IF_C aBFu0c_BFu17ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu17ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_Us");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_Us, aBFu0c_BFu17ll_Us)
//============================================================================



static void Test_aBFu0c_BFu17ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu17ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu17ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_BFu17ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu17ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0c_BFu17ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu17ll_Vp");
    check_field_offset(lv, v2, 3, "aBFu0c_BFu17ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu17ll_Vp, aBFu0c_BFu17ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c, aBFu0c_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu0c, aBFu0c_BFu1c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu1c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu0i, aBFu0c_BFu1c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu1c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu0ll, aBFu0c_BFu1c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu1c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu0s, aBFu0c_BFu1c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu15i, aBFu0c_BFu1c_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu15ll, aBFu0c_BFu1c_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu15s, aBFu0c_BFu1c_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu16i, aBFu0c_BFu1c_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu16ll, aBFu0c_BFu1c_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu16s, aBFu0c_BFu1c_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu17i, aBFu0c_BFu1c_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu17ll, aBFu0c_BFu1c_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu1c, aBFu0c_BFu1c_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu1i, aBFu0c_BFu1c_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu1ll, aBFu0c_BFu1c_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu1s, aBFu0c_BFu1c_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1c_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu31i, aBFu0c_BFu1c_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu31ll, aBFu0c_BFu1c_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1c_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu32i, aBFu0c_BFu1c_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu32ll, aBFu0c_BFu1c_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu33");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "aBFu0c_BFu1c_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu1c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu33, aBFu0c_BFu1c_BFu33)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1c_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu7c, aBFu0c_BFu1c_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1c_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu7i, aBFu0c_BFu1c_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu7ll, aBFu0c_BFu1c_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1c_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu7s, aBFu0c_BFu1c_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1c_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu8c, aBFu0c_BFu1c_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1c_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu8i, aBFu0c_BFu1c_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu8ll, aBFu0c_BFu1c_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1c_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu8s, aBFu0c_BFu1c_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1c_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu9i, aBFu0c_BFu1c_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu9ll, aBFu0c_BFu1c_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu1c_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu1c_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu1c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1c_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_BFu9s, aBFu0c_BFu1c_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu1c_C()
{
  {
    init_simple_test("aBFu0c_BFu1c_C");
    static STRUCT_IF_C aBFu0c_BFu1c_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_C, aBFu0c_BFu1c_C)
//============================================================================



static void Test_aBFu0c_BFu1c_D()
{
  {
    init_simple_test("aBFu0c_BFu1c_D");
    static STRUCT_IF_C aBFu0c_BFu1c_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_D, aBFu0c_BFu1c_D)
//============================================================================



static void Test_aBFu0c_BFu1c_F()
{
  {
    init_simple_test("aBFu0c_BFu1c_F");
    static STRUCT_IF_C aBFu0c_BFu1c_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_F, aBFu0c_BFu1c_F)
//============================================================================



static void Test_aBFu0c_BFu1c_I()
{
  {
    init_simple_test("aBFu0c_BFu1c_I");
    static STRUCT_IF_C aBFu0c_BFu1c_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_I, aBFu0c_BFu1c_I)
//============================================================================



static void Test_aBFu0c_BFu1c_Ip()
{
  {
    init_simple_test("aBFu0c_BFu1c_Ip");
    static STRUCT_IF_C aBFu0c_BFu1c_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_Ip, aBFu0c_BFu1c_Ip)
//============================================================================



static void Test_aBFu0c_BFu1c_L()
{
  {
    init_simple_test("aBFu0c_BFu1c_L");
    static STRUCT_IF_C aBFu0c_BFu1c_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_L, aBFu0c_BFu1c_L)
//============================================================================



static void Test_aBFu0c_BFu1c_S()
{
  {
    init_simple_test("aBFu0c_BFu1c_S");
    static STRUCT_IF_C aBFu0c_BFu1c_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_S, aBFu0c_BFu1c_S)
//============================================================================



static void Test_aBFu0c_BFu1c_Uc()
{
  {
    init_simple_test("aBFu0c_BFu1c_Uc");
    static STRUCT_IF_C aBFu0c_BFu1c_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_Uc, aBFu0c_BFu1c_Uc)
//============================================================================



static void Test_aBFu0c_BFu1c_Ui()
{
  {
    init_simple_test("aBFu0c_BFu1c_Ui");
    static STRUCT_IF_C aBFu0c_BFu1c_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_Ui, aBFu0c_BFu1c_Ui)
//============================================================================



static void Test_aBFu0c_BFu1c_Ul()
{
  {
    init_simple_test("aBFu0c_BFu1c_Ul");
    static STRUCT_IF_C aBFu0c_BFu1c_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_Ul, aBFu0c_BFu1c_Ul)
//============================================================================



static void Test_aBFu0c_BFu1c_Us()
{
  {
    init_simple_test("aBFu0c_BFu1c_Us");
    static STRUCT_IF_C aBFu0c_BFu1c_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_Us, aBFu0c_BFu1c_Us)
//============================================================================



static void Test_aBFu0c_BFu1c_Vp()
{
  {
    init_simple_test("aBFu0c_BFu1c_Vp");
    static STRUCT_IF_C aBFu0c_BFu1c_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1c_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1c_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1c_Vp, aBFu0c_BFu1c_Vp)
//============================================================================



static void Test_aBFu0c_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i, aBFu0c_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu0c, aBFu0c_BFu1i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu1i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu0i, aBFu0c_BFu1i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu1i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu0ll, aBFu0c_BFu1i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu1i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu0s, aBFu0c_BFu1i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1i_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu15i, aBFu0c_BFu1i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu15ll, aBFu0c_BFu1i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1i_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu15s, aBFu0c_BFu1i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1i_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu16i, aBFu0c_BFu1i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu16ll, aBFu0c_BFu1i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1i_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu16s, aBFu0c_BFu1i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1i_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu17i, aBFu0c_BFu1i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu17ll, aBFu0c_BFu1i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu1c, aBFu0c_BFu1i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu1i, aBFu0c_BFu1i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu1ll, aBFu0c_BFu1i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu1s, aBFu0c_BFu1i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1i_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu31i, aBFu0c_BFu1i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu31ll, aBFu0c_BFu1i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1i_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu32i, aBFu0c_BFu1i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu32ll, aBFu0c_BFu1i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "aBFu0c_BFu1i_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu1i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu33, aBFu0c_BFu1i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1i_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu7c, aBFu0c_BFu1i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1i_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu7i, aBFu0c_BFu1i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu7ll, aBFu0c_BFu1i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1i_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu7s, aBFu0c_BFu1i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1i_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu8c, aBFu0c_BFu1i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1i_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu8i, aBFu0c_BFu1i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu8ll, aBFu0c_BFu1i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1i_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu8s, aBFu0c_BFu1i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1i_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu9i, aBFu0c_BFu1i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu9ll, aBFu0c_BFu1i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu1i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu1i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu1i_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1i_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_BFu9s, aBFu0c_BFu1i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu1i_C()
{
  {
    init_simple_test("aBFu0c_BFu1i_C");
    static STRUCT_IF_C aBFu0c_BFu1i_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_C, aBFu0c_BFu1i_C)
//============================================================================



static void Test_aBFu0c_BFu1i_D()
{
  {
    init_simple_test("aBFu0c_BFu1i_D");
    static STRUCT_IF_C aBFu0c_BFu1i_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_D, aBFu0c_BFu1i_D)
//============================================================================



static void Test_aBFu0c_BFu1i_F()
{
  {
    init_simple_test("aBFu0c_BFu1i_F");
    static STRUCT_IF_C aBFu0c_BFu1i_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_F, aBFu0c_BFu1i_F)
//============================================================================



static void Test_aBFu0c_BFu1i_I()
{
  {
    init_simple_test("aBFu0c_BFu1i_I");
    static STRUCT_IF_C aBFu0c_BFu1i_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_I, aBFu0c_BFu1i_I)
//============================================================================



static void Test_aBFu0c_BFu1i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu1i_Ip");
    static STRUCT_IF_C aBFu0c_BFu1i_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_Ip, aBFu0c_BFu1i_Ip)
//============================================================================



static void Test_aBFu0c_BFu1i_L()
{
  {
    init_simple_test("aBFu0c_BFu1i_L");
    static STRUCT_IF_C aBFu0c_BFu1i_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_L, aBFu0c_BFu1i_L)
//============================================================================



static void Test_aBFu0c_BFu1i_S()
{
  {
    init_simple_test("aBFu0c_BFu1i_S");
    static STRUCT_IF_C aBFu0c_BFu1i_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_S, aBFu0c_BFu1i_S)
//============================================================================



static void Test_aBFu0c_BFu1i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu1i_Uc");
    static STRUCT_IF_C aBFu0c_BFu1i_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_Uc, aBFu0c_BFu1i_Uc)
//============================================================================



static void Test_aBFu0c_BFu1i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu1i_Ui");
    static STRUCT_IF_C aBFu0c_BFu1i_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_Ui, aBFu0c_BFu1i_Ui)
//============================================================================



static void Test_aBFu0c_BFu1i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu1i_Ul");
    static STRUCT_IF_C aBFu0c_BFu1i_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_Ul, aBFu0c_BFu1i_Ul)
//============================================================================



static void Test_aBFu0c_BFu1i_Us()
{
  {
    init_simple_test("aBFu0c_BFu1i_Us");
    static STRUCT_IF_C aBFu0c_BFu1i_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_Us, aBFu0c_BFu1i_Us)
//============================================================================



static void Test_aBFu0c_BFu1i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu1i_Vp");
    static STRUCT_IF_C aBFu0c_BFu1i_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1i_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1i_Vp, aBFu0c_BFu1i_Vp)
//============================================================================



static void Test_aBFu0c_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll, aBFu0c_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu0c, aBFu0c_BFu1ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu1ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu0i, aBFu0c_BFu1ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu1ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu0ll, aBFu0c_BFu1ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu1ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu0s, aBFu0c_BFu1ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu15i, aBFu0c_BFu1ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu15ll, aBFu0c_BFu1ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu15s, aBFu0c_BFu1ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu16i, aBFu0c_BFu1ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu16ll, aBFu0c_BFu1ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu16s, aBFu0c_BFu1ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu17i, aBFu0c_BFu1ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu17ll, aBFu0c_BFu1ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu1c, aBFu0c_BFu1ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu1i, aBFu0c_BFu1ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu1ll, aBFu0c_BFu1ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu1s, aBFu0c_BFu1ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu31i, aBFu0c_BFu1ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu31ll, aBFu0c_BFu1ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu32i, aBFu0c_BFu1ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu32ll, aBFu0c_BFu1ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "aBFu0c_BFu1ll_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu1ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu33, aBFu0c_BFu1ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu7c, aBFu0c_BFu1ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu7i, aBFu0c_BFu1ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu7ll, aBFu0c_BFu1ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu7s, aBFu0c_BFu1ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu8c, aBFu0c_BFu1ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu8i, aBFu0c_BFu1ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu8ll, aBFu0c_BFu1ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu8s, aBFu0c_BFu1ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu9i, aBFu0c_BFu1ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu9ll, aBFu0c_BFu1ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu1ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu1ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu1ll_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_BFu9s, aBFu0c_BFu1ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu1ll_C()
{
  {
    init_simple_test("aBFu0c_BFu1ll_C");
    static STRUCT_IF_C aBFu0c_BFu1ll_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_C, aBFu0c_BFu1ll_C)
//============================================================================



static void Test_aBFu0c_BFu1ll_D()
{
  {
    init_simple_test("aBFu0c_BFu1ll_D");
    static STRUCT_IF_C aBFu0c_BFu1ll_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_D, aBFu0c_BFu1ll_D)
//============================================================================



static void Test_aBFu0c_BFu1ll_F()
{
  {
    init_simple_test("aBFu0c_BFu1ll_F");
    static STRUCT_IF_C aBFu0c_BFu1ll_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_F, aBFu0c_BFu1ll_F)
//============================================================================



static void Test_aBFu0c_BFu1ll_I()
{
  {
    init_simple_test("aBFu0c_BFu1ll_I");
    static STRUCT_IF_C aBFu0c_BFu1ll_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_I, aBFu0c_BFu1ll_I)
//============================================================================



static void Test_aBFu0c_BFu1ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu1ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu1ll_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_Ip, aBFu0c_BFu1ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu1ll_L()
{
  {
    init_simple_test("aBFu0c_BFu1ll_L");
    static STRUCT_IF_C aBFu0c_BFu1ll_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_L, aBFu0c_BFu1ll_L)
//============================================================================



static void Test_aBFu0c_BFu1ll_S()
{
  {
    init_simple_test("aBFu0c_BFu1ll_S");
    static STRUCT_IF_C aBFu0c_BFu1ll_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_S, aBFu0c_BFu1ll_S)
//============================================================================



static void Test_aBFu0c_BFu1ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu1ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu1ll_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_Uc, aBFu0c_BFu1ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu1ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu1ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu1ll_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_Ui, aBFu0c_BFu1ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu1ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu1ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu1ll_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_Ul, aBFu0c_BFu1ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu1ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu1ll_Us");
    static STRUCT_IF_C aBFu0c_BFu1ll_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_Us, aBFu0c_BFu1ll_Us)
//============================================================================



static void Test_aBFu0c_BFu1ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu1ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu1ll_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1ll_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1ll_Vp, aBFu0c_BFu1ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s, aBFu0c_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu0c, aBFu0c_BFu1s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu1s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu0i, aBFu0c_BFu1s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu1s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu0ll, aBFu0c_BFu1s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu1s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu0s, aBFu0c_BFu1s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1s_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu15i, aBFu0c_BFu1s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu15ll, aBFu0c_BFu1s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0c_BFu1s_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu1s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu15s, aBFu0c_BFu1s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1s_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu16i, aBFu0c_BFu1s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu16ll, aBFu0c_BFu1s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0c_BFu1s_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu1s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu16s, aBFu0c_BFu1s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1s_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu17i, aBFu0c_BFu1s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0c_BFu1s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu1s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu17ll, aBFu0c_BFu1s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu1c, aBFu0c_BFu1s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu1i");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu1i, aBFu0c_BFu1s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu1ll, aBFu0c_BFu1s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu1s");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0c_BFu1s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu1s, aBFu0c_BFu1s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1s_BFu31i");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu31i, aBFu0c_BFu1s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu1s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, 1, "aBFu0c_BFu1s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu1s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu31ll, aBFu0c_BFu1s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1s_BFu32i");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu32i, aBFu0c_BFu1s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, 1, "aBFu0c_BFu1s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu1s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu32ll, aBFu0c_BFu1s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, 1, "aBFu0c_BFu1s_BFu33");
    set_bf_and_test(lv, v2, 0, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu1s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu33, aBFu0c_BFu1s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1s_BFu7c");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu7c, aBFu0c_BFu1s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1s_BFu7i");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu7i, aBFu0c_BFu1s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu7ll, aBFu0c_BFu1s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu1s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, 1, "aBFu0c_BFu1s_BFu7s");
    set_bf_and_test(lv, v2, 0, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu1s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu7s, aBFu0c_BFu1s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1s_BFu8c");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu8c, aBFu0c_BFu1s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1s_BFu8i");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu8i, aBFu0c_BFu1s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu8ll, aBFu0c_BFu1s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, 1, "aBFu0c_BFu1s_BFu8s");
    set_bf_and_test(lv, v2, 0, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu1s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu8s, aBFu0c_BFu1s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1s_BFu9i");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu9i, aBFu0c_BFu1s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu9ll, aBFu0c_BFu1s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu1s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu1s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu1s_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, 1, "aBFu0c_BFu1s_BFu9s");
    set_bf_and_test(lv, v2, 0, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu1s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_BFu9s, aBFu0c_BFu1s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu1s_C()
{
  {
    init_simple_test("aBFu0c_BFu1s_C");
    static STRUCT_IF_C aBFu0c_BFu1s_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_C)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_C, aBFu0c_BFu1s_C)
//============================================================================



static void Test_aBFu0c_BFu1s_D()
{
  {
    init_simple_test("aBFu0c_BFu1s_D");
    static STRUCT_IF_C aBFu0c_BFu1s_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_D)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_D, aBFu0c_BFu1s_D)
//============================================================================



static void Test_aBFu0c_BFu1s_F()
{
  {
    init_simple_test("aBFu0c_BFu1s_F");
    static STRUCT_IF_C aBFu0c_BFu1s_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_F)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_F, aBFu0c_BFu1s_F)
//============================================================================



static void Test_aBFu0c_BFu1s_I()
{
  {
    init_simple_test("aBFu0c_BFu1s_I");
    static STRUCT_IF_C aBFu0c_BFu1s_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_I)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_I, aBFu0c_BFu1s_I)
//============================================================================



static void Test_aBFu0c_BFu1s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu1s_Ip");
    static STRUCT_IF_C aBFu0c_BFu1s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_Ip, aBFu0c_BFu1s_Ip)
//============================================================================



static void Test_aBFu0c_BFu1s_L()
{
  {
    init_simple_test("aBFu0c_BFu1s_L");
    static STRUCT_IF_C aBFu0c_BFu1s_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_L)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_L, aBFu0c_BFu1s_L)
//============================================================================



static void Test_aBFu0c_BFu1s_S()
{
  {
    init_simple_test("aBFu0c_BFu1s_S");
    static STRUCT_IF_C aBFu0c_BFu1s_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_S)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_S, aBFu0c_BFu1s_S)
//============================================================================



static void Test_aBFu0c_BFu1s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu1s_Uc");
    static STRUCT_IF_C aBFu0c_BFu1s_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu1s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_Uc, aBFu0c_BFu1s_Uc)
//============================================================================



static void Test_aBFu0c_BFu1s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu1s_Ui");
    static STRUCT_IF_C aBFu0c_BFu1s_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu1s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_Ui, aBFu0c_BFu1s_Ui)
//============================================================================



static void Test_aBFu0c_BFu1s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu1s_Ul");
    static STRUCT_IF_C aBFu0c_BFu1s_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu1s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_Ul, aBFu0c_BFu1s_Ul)
//============================================================================



static void Test_aBFu0c_BFu1s_Us()
{
  {
    init_simple_test("aBFu0c_BFu1s_Us");
    static STRUCT_IF_C aBFu0c_BFu1s_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu1s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_Us, aBFu0c_BFu1s_Us)
//============================================================================



static void Test_aBFu0c_BFu1s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu1s_Vp");
    static STRUCT_IF_C aBFu0c_BFu1s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu1s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu1s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0c_BFu1s_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu1s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu1s_Vp, aBFu0c_BFu1s_Vp)
//============================================================================



static void Test_aBFu0c_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i, aBFu0c_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu0c, aBFu0c_BFu31i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu0i, aBFu0c_BFu31i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu31i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu0ll, aBFu0c_BFu31i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu0s, aBFu0c_BFu31i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "aBFu0c_BFu31i_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu31i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu15i, aBFu0c_BFu31i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "aBFu0c_BFu31i_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu31i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu15ll, aBFu0c_BFu31i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "aBFu0c_BFu31i_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu31i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu15s, aBFu0c_BFu31i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "aBFu0c_BFu31i_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu31i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu16i, aBFu0c_BFu31i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "aBFu0c_BFu31i_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu31i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu16ll, aBFu0c_BFu31i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "aBFu0c_BFu31i_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu31i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu16s, aBFu0c_BFu31i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "aBFu0c_BFu31i_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu31i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu17i, aBFu0c_BFu31i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "aBFu0c_BFu31i_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu31i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu17ll, aBFu0c_BFu31i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu1c");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu1c, aBFu0c_BFu31i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu1i");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu1i, aBFu0c_BFu31i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu1ll");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu1ll, aBFu0c_BFu31i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu1s");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu1s, aBFu0c_BFu31i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "aBFu0c_BFu31i_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu31i, aBFu0c_BFu31i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "aBFu0c_BFu31i_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu31ll, aBFu0c_BFu31i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "aBFu0c_BFu31i_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu31i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu32i, aBFu0c_BFu31i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "aBFu0c_BFu31i_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu31i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu32ll, aBFu0c_BFu31i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, 1, "aBFu0c_BFu31i_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu31i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu33, aBFu0c_BFu31i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31i_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu7c, aBFu0c_BFu31i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31i_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu7i, aBFu0c_BFu31i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31i_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu7ll, aBFu0c_BFu31i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31i_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu7s, aBFu0c_BFu31i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31i_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu8c, aBFu0c_BFu31i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31i_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu8i, aBFu0c_BFu31i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31i_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu8ll, aBFu0c_BFu31i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31i_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu8s, aBFu0c_BFu31i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "aBFu0c_BFu31i_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu31i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu9i, aBFu0c_BFu31i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "aBFu0c_BFu31i_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu31i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu9ll, aBFu0c_BFu31i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu31i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu31i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu31i_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "aBFu0c_BFu31i_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu31i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_BFu9s, aBFu0c_BFu31i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu31i_C()
{
  {
    init_simple_test("aBFu0c_BFu31i_C");
    static STRUCT_IF_C aBFu0c_BFu31i_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_C)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_C");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_C");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_C, aBFu0c_BFu31i_C)
//============================================================================



static void Test_aBFu0c_BFu31i_D()
{
  {
    init_simple_test("aBFu0c_BFu31i_D");
    static STRUCT_IF_C aBFu0c_BFu31i_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu31i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_D)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_D");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_D");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_D, aBFu0c_BFu31i_D)
//============================================================================



static void Test_aBFu0c_BFu31i_F()
{
  {
    init_simple_test("aBFu0c_BFu31i_F");
    static STRUCT_IF_C aBFu0c_BFu31i_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_F)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_F");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_F");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_F, aBFu0c_BFu31i_F)
//============================================================================



static void Test_aBFu0c_BFu31i_I()
{
  {
    init_simple_test("aBFu0c_BFu31i_I");
    static STRUCT_IF_C aBFu0c_BFu31i_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_I)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_I");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_I");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_I, aBFu0c_BFu31i_I)
//============================================================================



static void Test_aBFu0c_BFu31i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu31i_Ip");
    static STRUCT_IF_C aBFu0c_BFu31i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu31i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_Ip");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_Ip, aBFu0c_BFu31i_Ip)
//============================================================================



static void Test_aBFu0c_BFu31i_L()
{
  {
    init_simple_test("aBFu0c_BFu31i_L");
    static STRUCT_IF_C aBFu0c_BFu31i_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu31i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_L)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_L");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_L");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_L, aBFu0c_BFu31i_L)
//============================================================================



static void Test_aBFu0c_BFu31i_S()
{
  {
    init_simple_test("aBFu0c_BFu31i_S");
    static STRUCT_IF_C aBFu0c_BFu31i_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_S)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_S");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_S");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_S, aBFu0c_BFu31i_S)
//============================================================================



static void Test_aBFu0c_BFu31i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu31i_Uc");
    static STRUCT_IF_C aBFu0c_BFu31i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_Uc");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_Uc, aBFu0c_BFu31i_Uc)
//============================================================================



static void Test_aBFu0c_BFu31i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu31i_Ui");
    static STRUCT_IF_C aBFu0c_BFu31i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_Ui");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_Ui, aBFu0c_BFu31i_Ui)
//============================================================================



static void Test_aBFu0c_BFu31i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu31i_Ul");
    static STRUCT_IF_C aBFu0c_BFu31i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu31i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_Ul");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_Ul, aBFu0c_BFu31i_Ul)
//============================================================================



static void Test_aBFu0c_BFu31i_Us()
{
  {
    init_simple_test("aBFu0c_BFu31i_Us");
    static STRUCT_IF_C aBFu0c_BFu31i_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_Us");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_Us");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_Us, aBFu0c_BFu31i_Us)
//============================================================================



static void Test_aBFu0c_BFu31i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu31i_Vp");
    static STRUCT_IF_C aBFu0c_BFu31i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu31i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31i_Vp");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31i_Vp, aBFu0c_BFu31i_Vp)
//============================================================================



static void Test_aBFu0c_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll, aBFu0c_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu0c, aBFu0c_BFu31ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu0i, aBFu0c_BFu31ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu31ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu0ll, aBFu0c_BFu31ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu0s, aBFu0c_BFu31ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "aBFu0c_BFu31ll_BFu15i");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu31ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu15i, aBFu0c_BFu31ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "aBFu0c_BFu31ll_BFu15ll");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu31ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu15ll, aBFu0c_BFu31ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, 1, "aBFu0c_BFu31ll_BFu15s");
    set_bf_and_test(lv, v2, 3, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu31ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu15s, aBFu0c_BFu31ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "aBFu0c_BFu31ll_BFu16i");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu31ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu16i, aBFu0c_BFu31ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "aBFu0c_BFu31ll_BFu16ll");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu31ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu16ll, aBFu0c_BFu31ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, 1, "aBFu0c_BFu31ll_BFu16s");
    set_bf_and_test(lv, v2, 3, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu31ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu16s, aBFu0c_BFu31ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu17i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "aBFu0c_BFu31ll_BFu17i");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu31ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu17i, aBFu0c_BFu31ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu17ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, 1, "aBFu0c_BFu31ll_BFu17ll");
    set_bf_and_test(lv, v2, 3, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu31ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu17ll, aBFu0c_BFu31ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu1c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu1c");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu1c, aBFu0c_BFu31ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu1i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu1i");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu1i, aBFu0c_BFu31ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu1ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu1ll");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu1ll, aBFu0c_BFu31ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu1s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu31ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu1s");
    set_bf_and_test(lv, v2, 3, 7, 1, 1, "aBFu0c_BFu31ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu1s, aBFu0c_BFu31ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "aBFu0c_BFu31ll_BFu31i");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu31i, aBFu0c_BFu31ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, 1, "aBFu0c_BFu31ll_BFu31ll");
    set_bf_and_test(lv, v2, 3, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu31ll, aBFu0c_BFu31ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "aBFu0c_BFu31ll_BFu32i");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu31ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu32i, aBFu0c_BFu31ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, 1, "aBFu0c_BFu31ll_BFu32ll");
    set_bf_and_test(lv, v2, 3, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu31ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu32ll, aBFu0c_BFu31ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu33 lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, 1, "aBFu0c_BFu31ll_BFu33");
    set_bf_and_test(lv, v2, 3, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu31ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu33, aBFu0c_BFu31ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31ll_BFu7c");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu7c, aBFu0c_BFu31ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31ll_BFu7i");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu7i, aBFu0c_BFu31ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31ll_BFu7ll");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu7ll, aBFu0c_BFu31ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, 1, "aBFu0c_BFu31ll_BFu7s");
    set_bf_and_test(lv, v2, 3, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu31ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu7s, aBFu0c_BFu31ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31ll_BFu8c");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu8c, aBFu0c_BFu31ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31ll_BFu8i");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu8i, aBFu0c_BFu31ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31ll_BFu8ll");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu8ll, aBFu0c_BFu31ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, 1, "aBFu0c_BFu31ll_BFu8s");
    set_bf_and_test(lv, v2, 3, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu31ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu8s, aBFu0c_BFu31ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu9i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "aBFu0c_BFu31ll_BFu9i");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu31ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu9i, aBFu0c_BFu31ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu9ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "aBFu0c_BFu31ll_BFu9ll");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu31ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu9ll, aBFu0c_BFu31ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu31ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu31ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu31ll_BFu9s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, 1, "aBFu0c_BFu31ll_BFu9s");
    set_bf_and_test(lv, v2, 3, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu31ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_BFu9s, aBFu0c_BFu31ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu31ll_C()
{
  {
    init_simple_test("aBFu0c_BFu31ll_C");
    static STRUCT_IF_C aBFu0c_BFu31ll_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_C");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_C");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_C, aBFu0c_BFu31ll_C)
//============================================================================



static void Test_aBFu0c_BFu31ll_D()
{
  {
    init_simple_test("aBFu0c_BFu31ll_D");
    static STRUCT_IF_C aBFu0c_BFu31ll_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu31ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_D");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_D");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_D, aBFu0c_BFu31ll_D)
//============================================================================



static void Test_aBFu0c_BFu31ll_F()
{
  {
    init_simple_test("aBFu0c_BFu31ll_F");
    static STRUCT_IF_C aBFu0c_BFu31ll_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_F");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_F");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_F, aBFu0c_BFu31ll_F)
//============================================================================



static void Test_aBFu0c_BFu31ll_I()
{
  {
    init_simple_test("aBFu0c_BFu31ll_I");
    static STRUCT_IF_C aBFu0c_BFu31ll_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_I");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_I");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_I, aBFu0c_BFu31ll_I)
//============================================================================



static void Test_aBFu0c_BFu31ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu31ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu31ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu31ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_Ip");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_Ip, aBFu0c_BFu31ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu31ll_L()
{
  {
    init_simple_test("aBFu0c_BFu31ll_L");
    static STRUCT_IF_C aBFu0c_BFu31ll_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu31ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_L");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_L");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_L, aBFu0c_BFu31ll_L)
//============================================================================



static void Test_aBFu0c_BFu31ll_S()
{
  {
    init_simple_test("aBFu0c_BFu31ll_S");
    static STRUCT_IF_C aBFu0c_BFu31ll_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_S");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_S");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_S, aBFu0c_BFu31ll_S)
//============================================================================



static void Test_aBFu0c_BFu31ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu31ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu31ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu31ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_Uc");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_Uc, aBFu0c_BFu31ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu31ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu31ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu31ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu31ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_Ui");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_Ui, aBFu0c_BFu31ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu31ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu31ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu31ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu31ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_Ul");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_Ul, aBFu0c_BFu31ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu31ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu31ll_Us");
    static STRUCT_IF_C aBFu0c_BFu31ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu31ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_Us");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_Us, aBFu0c_BFu31ll_Us)
//============================================================================



static void Test_aBFu0c_BFu31ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu31ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu31ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu31ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu31ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0c_BFu31ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu31ll_Vp");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu31ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu31ll_Vp, aBFu0c_BFu31ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i, aBFu0c_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu0c, aBFu0c_BFu32i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu0i, aBFu0c_BFu32i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu32i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu0ll, aBFu0c_BFu32i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu0s, aBFu0c_BFu32i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_BFu32i_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu32i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu15i, aBFu0c_BFu32i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_BFu32i_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu32i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu15ll, aBFu0c_BFu32i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_BFu32i_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu32i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu15s, aBFu0c_BFu32i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_BFu32i_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu32i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu16i, aBFu0c_BFu32i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_BFu32i_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu32i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu16ll, aBFu0c_BFu32i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_BFu32i_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu32i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu16s, aBFu0c_BFu32i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu32i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_BFu32i_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu32i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu17i, aBFu0c_BFu32i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu32i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_BFu32i_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu32i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu17ll, aBFu0c_BFu32i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu1c");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu1c, aBFu0c_BFu32i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu1i");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu1i, aBFu0c_BFu32i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu1ll");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu1ll, aBFu0c_BFu32i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu1s");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu1s, aBFu0c_BFu32i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_BFu32i_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu32i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu31i, aBFu0c_BFu32i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_BFu32i_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu32i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu31ll, aBFu0c_BFu32i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_BFu32i_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu32i, aBFu0c_BFu32i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_BFu32i_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu32ll, aBFu0c_BFu32i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu32i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu0c_BFu32i_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu32i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu33, aBFu0c_BFu32i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32i_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu7c, aBFu0c_BFu32i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32i_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu7i, aBFu0c_BFu32i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32i_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu7ll, aBFu0c_BFu32i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32i_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu7s, aBFu0c_BFu32i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32i_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu8c, aBFu0c_BFu32i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32i_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu8i, aBFu0c_BFu32i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32i_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu8ll, aBFu0c_BFu32i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32i_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu8s, aBFu0c_BFu32i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_BFu32i_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu32i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu9i, aBFu0c_BFu32i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_BFu32i_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu32i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu9ll, aBFu0c_BFu32i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu32i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu32i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu32i_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_BFu32i_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu32i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_BFu9s, aBFu0c_BFu32i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu32i_C()
{
  {
    init_simple_test("aBFu0c_BFu32i_C");
    static STRUCT_IF_C aBFu0c_BFu32i_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_C");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_C, aBFu0c_BFu32i_C)
//============================================================================



static void Test_aBFu0c_BFu32i_D()
{
  {
    init_simple_test("aBFu0c_BFu32i_D");
    static STRUCT_IF_C aBFu0c_BFu32i_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu32i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_D");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_D, aBFu0c_BFu32i_D)
//============================================================================



static void Test_aBFu0c_BFu32i_F()
{
  {
    init_simple_test("aBFu0c_BFu32i_F");
    static STRUCT_IF_C aBFu0c_BFu32i_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_F");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_F, aBFu0c_BFu32i_F)
//============================================================================



static void Test_aBFu0c_BFu32i_I()
{
  {
    init_simple_test("aBFu0c_BFu32i_I");
    static STRUCT_IF_C aBFu0c_BFu32i_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_I");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_I, aBFu0c_BFu32i_I)
//============================================================================



static void Test_aBFu0c_BFu32i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu32i_Ip");
    static STRUCT_IF_C aBFu0c_BFu32i_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu32i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_Ip");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_Ip, aBFu0c_BFu32i_Ip)
//============================================================================



static void Test_aBFu0c_BFu32i_L()
{
  {
    init_simple_test("aBFu0c_BFu32i_L");
    static STRUCT_IF_C aBFu0c_BFu32i_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu32i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_L");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_L, aBFu0c_BFu32i_L)
//============================================================================



static void Test_aBFu0c_BFu32i_S()
{
  {
    init_simple_test("aBFu0c_BFu32i_S");
    static STRUCT_IF_C aBFu0c_BFu32i_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_S");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_S, aBFu0c_BFu32i_S)
//============================================================================



static void Test_aBFu0c_BFu32i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu32i_Uc");
    static STRUCT_IF_C aBFu0c_BFu32i_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_Uc");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_Uc, aBFu0c_BFu32i_Uc)
//============================================================================



static void Test_aBFu0c_BFu32i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu32i_Ui");
    static STRUCT_IF_C aBFu0c_BFu32i_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_Ui");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_Ui, aBFu0c_BFu32i_Ui)
//============================================================================



static void Test_aBFu0c_BFu32i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu32i_Ul");
    static STRUCT_IF_C aBFu0c_BFu32i_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu32i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_Ul");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_Ul, aBFu0c_BFu32i_Ul)
//============================================================================



static void Test_aBFu0c_BFu32i_Us()
{
  {
    init_simple_test("aBFu0c_BFu32i_Us");
    static STRUCT_IF_C aBFu0c_BFu32i_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_Us");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_Us, aBFu0c_BFu32i_Us)
//============================================================================



static void Test_aBFu0c_BFu32i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu32i_Vp");
    static STRUCT_IF_C aBFu0c_BFu32i_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu32i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32i_Vp");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32i_Vp, aBFu0c_BFu32i_Vp)
//============================================================================



static void Test_aBFu0c_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll, aBFu0c_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu0c, aBFu0c_BFu32ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu0i, aBFu0c_BFu32ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu32ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu0ll, aBFu0c_BFu32ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu32ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu0s, aBFu0c_BFu32ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_BFu32ll_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu32ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu15i, aBFu0c_BFu32ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_BFu32ll_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu32ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu15ll, aBFu0c_BFu32ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_BFu32ll_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu32ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu15s, aBFu0c_BFu32ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_BFu32ll_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu32ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu16i, aBFu0c_BFu32ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_BFu32ll_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu32ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu16ll, aBFu0c_BFu32ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_BFu32ll_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu32ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu16s, aBFu0c_BFu32ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu32ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_BFu32ll_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu32ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu17i, aBFu0c_BFu32ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu32ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_BFu32ll_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu32ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu17ll, aBFu0c_BFu32ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu1c");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu1c, aBFu0c_BFu32ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu1i");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu1i, aBFu0c_BFu32ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu1ll");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu1ll, aBFu0c_BFu32ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu1s");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_BFu32ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu1s, aBFu0c_BFu32ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_BFu32ll_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu32ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu31i, aBFu0c_BFu32ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_BFu32ll_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu32ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu31ll, aBFu0c_BFu32ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_BFu32ll_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu32i, aBFu0c_BFu32ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_BFu32ll_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu32ll, aBFu0c_BFu32ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu32ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu0c_BFu32ll_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu32ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu33, aBFu0c_BFu32ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32ll_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu7c, aBFu0c_BFu32ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32ll_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu7i, aBFu0c_BFu32ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32ll_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu7ll, aBFu0c_BFu32ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_BFu32ll_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu32ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu7s, aBFu0c_BFu32ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32ll_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu8c, aBFu0c_BFu32ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32ll_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu8i, aBFu0c_BFu32ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32ll_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu8ll, aBFu0c_BFu32ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_BFu32ll_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu32ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu8s, aBFu0c_BFu32ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_BFu32ll_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu32ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu9i, aBFu0c_BFu32ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_BFu32ll_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu32ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu9ll, aBFu0c_BFu32ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu32ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu32ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu32ll_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_BFu32ll_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu32ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_BFu9s, aBFu0c_BFu32ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu32ll_C()
{
  {
    init_simple_test("aBFu0c_BFu32ll_C");
    static STRUCT_IF_C aBFu0c_BFu32ll_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_C");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_C");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_C, aBFu0c_BFu32ll_C)
//============================================================================



static void Test_aBFu0c_BFu32ll_D()
{
  {
    init_simple_test("aBFu0c_BFu32ll_D");
    static STRUCT_IF_C aBFu0c_BFu32ll_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu32ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_D");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_D");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_D, aBFu0c_BFu32ll_D)
//============================================================================



static void Test_aBFu0c_BFu32ll_F()
{
  {
    init_simple_test("aBFu0c_BFu32ll_F");
    static STRUCT_IF_C aBFu0c_BFu32ll_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_F");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_F");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_F, aBFu0c_BFu32ll_F)
//============================================================================



static void Test_aBFu0c_BFu32ll_I()
{
  {
    init_simple_test("aBFu0c_BFu32ll_I");
    static STRUCT_IF_C aBFu0c_BFu32ll_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_I");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_I");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_I, aBFu0c_BFu32ll_I)
//============================================================================



static void Test_aBFu0c_BFu32ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu32ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu32ll_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu32ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_Ip");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_Ip, aBFu0c_BFu32ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu32ll_L()
{
  {
    init_simple_test("aBFu0c_BFu32ll_L");
    static STRUCT_IF_C aBFu0c_BFu32ll_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu32ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_L");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_L");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_L, aBFu0c_BFu32ll_L)
//============================================================================



static void Test_aBFu0c_BFu32ll_S()
{
  {
    init_simple_test("aBFu0c_BFu32ll_S");
    static STRUCT_IF_C aBFu0c_BFu32ll_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_S");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_S");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_S, aBFu0c_BFu32ll_S)
//============================================================================



static void Test_aBFu0c_BFu32ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu32ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu32ll_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu32ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_Uc");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_Uc, aBFu0c_BFu32ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu32ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu32ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu32ll_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu32ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_Ui");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_Ui, aBFu0c_BFu32ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu32ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu32ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu32ll_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_BFu32ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_Ul");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_Ul, aBFu0c_BFu32ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu32ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu32ll_Us");
    static STRUCT_IF_C aBFu0c_BFu32ll_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu32ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_Us");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_Us, aBFu0c_BFu32ll_Us)
//============================================================================



static void Test_aBFu0c_BFu32ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu32ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu32ll_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_BFu32ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu32ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0c_BFu32ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu32ll_Vp");
    check_field_offset(lv, v2, 4, "aBFu0c_BFu32ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu32ll_Vp, aBFu0c_BFu32ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu33");
    static STRUCT_IF_C aBFu0c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33, aBFu0c_BFu33)
//============================================================================



static void Test_aBFu0c_BFu33_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu33_BFu0c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu0c, aBFu0c_BFu33_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu33_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu0i lv;
    check2(sizeof(lv), ABISELECT(8,8), "sizeof(aBFu0c_BFu33_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu0i, aBFu0c_BFu33_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,8), "sizeof(aBFu0c_BFu33_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu0ll, aBFu0c_BFu33_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu0s lv;
    check2(sizeof(lv), ABISELECT(6,6), "sizeof(aBFu0c_BFu33_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu0s, aBFu0c_BFu33_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu33_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu0c_BFu33_BFu15i");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu33_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu15i, aBFu0c_BFu33_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu0c_BFu33_BFu15ll");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu33_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu15ll, aBFu0c_BFu33_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, 1, "aBFu0c_BFu33_BFu15s");
    set_bf_and_test(lv, v2, 4, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu33_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu15s, aBFu0c_BFu33_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu33_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu16i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu0c_BFu33_BFu16i");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu33_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu16i, aBFu0c_BFu33_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu16ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu0c_BFu33_BFu16ll");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu33_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu16ll, aBFu0c_BFu33_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu16s lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, 1, "aBFu0c_BFu33_BFu16s");
    set_bf_and_test(lv, v2, 4, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu33_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu16s, aBFu0c_BFu33_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu33_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu0c_BFu33_BFu17i");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu33_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu17i, aBFu0c_BFu33_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, 1, "aBFu0c_BFu33_BFu17ll");
    set_bf_and_test(lv, v2, 4, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu33_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu17ll, aBFu0c_BFu33_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu33_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu1c");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu0c_BFu33_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu1c, aBFu0c_BFu33_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu33_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu1i");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu0c_BFu33_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu1i, aBFu0c_BFu33_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu1ll");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu0c_BFu33_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu1ll, aBFu0c_BFu33_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu1s");
    set_bf_and_test(lv, v2, 4, 1, 1, 1, "aBFu0c_BFu33_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu1s, aBFu0c_BFu33_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu33_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu33_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu0c_BFu33_BFu31i");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu33_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu31i, aBFu0c_BFu33_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_BFu33_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, 1, "aBFu0c_BFu33_BFu31ll");
    set_bf_and_test(lv, v2, 4, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu33_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu31ll, aBFu0c_BFu33_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu32i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu33_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu0c_BFu33_BFu32i");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu33_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu32i, aBFu0c_BFu33_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu32ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu33_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, 1, "aBFu0c_BFu33_BFu32ll");
    set_bf_and_test(lv, v2, 4, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu33_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu32ll, aBFu0c_BFu33_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu33");
    static STRUCT_IF_C aBFu0c_BFu33_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu33_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, 1, "aBFu0c_BFu33_BFu33");
    set_bf_and_test(lv, v2, 4, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu33, aBFu0c_BFu33_BFu33)
//============================================================================



static void Test_aBFu0c_BFu33_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu33_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu0c_BFu33_BFu7c");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu33_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu7c, aBFu0c_BFu33_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu33_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu0c_BFu33_BFu7i");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu33_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu7i, aBFu0c_BFu33_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu0c_BFu33_BFu7ll");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu33_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu7ll, aBFu0c_BFu33_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu33_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, 1, "aBFu0c_BFu33_BFu7s");
    set_bf_and_test(lv, v2, 4, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu33_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu7s, aBFu0c_BFu33_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu33_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu33_BFu8c lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu0c_BFu33_BFu8c");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu33_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu8c, aBFu0c_BFu33_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu33_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu8i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu0c_BFu33_BFu8i");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu33_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu8i, aBFu0c_BFu33_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu8ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu0c_BFu33_BFu8ll");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu33_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu8ll, aBFu0c_BFu33_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu8s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, 1, "aBFu0c_BFu33_BFu8s");
    set_bf_and_test(lv, v2, 4, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu33_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu8s, aBFu0c_BFu33_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu33_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu33_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu0c_BFu33_BFu9i");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu33_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu9i, aBFu0c_BFu33_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu33_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu33_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu0c_BFu33_BFu9ll");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu33_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu9ll, aBFu0c_BFu33_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu33_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu33_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu33_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, 1, "aBFu0c_BFu33_BFu9s");
    set_bf_and_test(lv, v2, 4, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu33_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_BFu9s, aBFu0c_BFu33_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu33_C()
{
  {
    init_simple_test("aBFu0c_BFu33_C");
    static STRUCT_IF_C aBFu0c_BFu33_C lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_C)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_C");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_C");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_C, aBFu0c_BFu33_C)
//============================================================================



static void Test_aBFu0c_BFu33_D()
{
  {
    init_simple_test("aBFu0c_BFu33_D");
    static STRUCT_IF_C aBFu0c_BFu33_D lv;
    check2(sizeof(lv), 13, "sizeof(aBFu0c_BFu33_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_D)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_D");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_D");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_D, aBFu0c_BFu33_D)
//============================================================================



static void Test_aBFu0c_BFu33_F()
{
  {
    init_simple_test("aBFu0c_BFu33_F");
    static STRUCT_IF_C aBFu0c_BFu33_F lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu33_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_F)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_F");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_F");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_F, aBFu0c_BFu33_F)
//============================================================================



static void Test_aBFu0c_BFu33_I()
{
  {
    init_simple_test("aBFu0c_BFu33_I");
    static STRUCT_IF_C aBFu0c_BFu33_I lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu33_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_I)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_I");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_I");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_I, aBFu0c_BFu33_I)
//============================================================================



static void Test_aBFu0c_BFu33_Ip()
{
  {
    init_simple_test("aBFu0c_BFu33_Ip");
    static STRUCT_IF_C aBFu0c_BFu33_Ip lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu0c_BFu33_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_Ip");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_Ip");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_Ip, aBFu0c_BFu33_Ip)
//============================================================================



static void Test_aBFu0c_BFu33_L()
{
  {
    init_simple_test("aBFu0c_BFu33_L");
    static STRUCT_IF_C aBFu0c_BFu33_L lv;
    check2(sizeof(lv), 13, "sizeof(aBFu0c_BFu33_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_L)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_L");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_L");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_L, aBFu0c_BFu33_L)
//============================================================================



static void Test_aBFu0c_BFu33_S()
{
  {
    init_simple_test("aBFu0c_BFu33_S");
    static STRUCT_IF_C aBFu0c_BFu33_S lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_S)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_S");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_S");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_S, aBFu0c_BFu33_S)
//============================================================================



static void Test_aBFu0c_BFu33_Uc()
{
  {
    init_simple_test("aBFu0c_BFu33_Uc");
    static STRUCT_IF_C aBFu0c_BFu33_Uc lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu33_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_Uc");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_Uc");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_Uc, aBFu0c_BFu33_Uc)
//============================================================================



static void Test_aBFu0c_BFu33_Ui()
{
  {
    init_simple_test("aBFu0c_BFu33_Ui");
    static STRUCT_IF_C aBFu0c_BFu33_Ui lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu33_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_Ui");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_Ui");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_Ui, aBFu0c_BFu33_Ui)
//============================================================================



static void Test_aBFu0c_BFu33_Ul()
{
  {
    init_simple_test("aBFu0c_BFu33_Ul");
    static STRUCT_IF_C aBFu0c_BFu33_Ul lv;
    check2(sizeof(lv), 13, "sizeof(aBFu0c_BFu33_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_Ul");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_Ul");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_Ul, aBFu0c_BFu33_Ul)
//============================================================================



static void Test_aBFu0c_BFu33_Us()
{
  {
    init_simple_test("aBFu0c_BFu33_Us");
    static STRUCT_IF_C aBFu0c_BFu33_Us lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_BFu33_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_Us)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_Us");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_Us");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_Us, aBFu0c_BFu33_Us)
//============================================================================



static void Test_aBFu0c_BFu33_Vp()
{
  {
    init_simple_test("aBFu0c_BFu33_Vp");
    static STRUCT_IF_C aBFu0c_BFu33_Vp lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu0c_BFu33_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu33_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0c_BFu33_Vp");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu33_Vp");
    check_field_offset(lv, v2, 5, "aBFu0c_BFu33_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu33_Vp, aBFu0c_BFu33_Vp)
//============================================================================



static void Test_aBFu0c_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c, aBFu0c_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu0c, aBFu0c_BFu7c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu7c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu0i, aBFu0c_BFu7c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu7c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu0ll, aBFu0c_BFu7c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu7c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu0s, aBFu0c_BFu7c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7c_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu15i, aBFu0c_BFu7c_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu15ll, aBFu0c_BFu7c_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7c_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu15s, aBFu0c_BFu7c_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7c_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu16i, aBFu0c_BFu7c_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu16ll, aBFu0c_BFu7c_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7c_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu16s, aBFu0c_BFu7c_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7c_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu17i, aBFu0c_BFu7c_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu17ll, aBFu0c_BFu7c_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu1c, aBFu0c_BFu7c_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu1i, aBFu0c_BFu7c_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu1ll, aBFu0c_BFu7c_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu1s, aBFu0c_BFu7c_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7c_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu31i, aBFu0c_BFu7c_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7c_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu31ll, aBFu0c_BFu7c_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7c_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu32i, aBFu0c_BFu7c_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7c_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu32ll, aBFu0c_BFu7c_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu33");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu0c_BFu7c_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu7c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu33, aBFu0c_BFu7c_BFu33)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7c_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu7c, aBFu0c_BFu7c_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7c_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu7i, aBFu0c_BFu7c_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7c_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu7ll, aBFu0c_BFu7c_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7c_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu7s, aBFu0c_BFu7c_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7c_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu8c, aBFu0c_BFu7c_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7c_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu8i, aBFu0c_BFu7c_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7c_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu8ll, aBFu0c_BFu7c_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7c_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu8s, aBFu0c_BFu7c_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7c_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu9i, aBFu0c_BFu7c_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7c_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu9ll, aBFu0c_BFu7c_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu7c_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu7c_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu7c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7c_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_BFu9s, aBFu0c_BFu7c_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu7c_C()
{
  {
    init_simple_test("aBFu0c_BFu7c_C");
    static STRUCT_IF_C aBFu0c_BFu7c_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_C, aBFu0c_BFu7c_C)
//============================================================================



static void Test_aBFu0c_BFu7c_D()
{
  {
    init_simple_test("aBFu0c_BFu7c_D");
    static STRUCT_IF_C aBFu0c_BFu7c_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_D, aBFu0c_BFu7c_D)
//============================================================================



static void Test_aBFu0c_BFu7c_F()
{
  {
    init_simple_test("aBFu0c_BFu7c_F");
    static STRUCT_IF_C aBFu0c_BFu7c_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_F, aBFu0c_BFu7c_F)
//============================================================================



static void Test_aBFu0c_BFu7c_I()
{
  {
    init_simple_test("aBFu0c_BFu7c_I");
    static STRUCT_IF_C aBFu0c_BFu7c_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_I, aBFu0c_BFu7c_I)
//============================================================================



static void Test_aBFu0c_BFu7c_Ip()
{
  {
    init_simple_test("aBFu0c_BFu7c_Ip");
    static STRUCT_IF_C aBFu0c_BFu7c_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_Ip, aBFu0c_BFu7c_Ip)
//============================================================================



static void Test_aBFu0c_BFu7c_L()
{
  {
    init_simple_test("aBFu0c_BFu7c_L");
    static STRUCT_IF_C aBFu0c_BFu7c_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_L, aBFu0c_BFu7c_L)
//============================================================================



static void Test_aBFu0c_BFu7c_S()
{
  {
    init_simple_test("aBFu0c_BFu7c_S");
    static STRUCT_IF_C aBFu0c_BFu7c_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_S, aBFu0c_BFu7c_S)
//============================================================================



static void Test_aBFu0c_BFu7c_Uc()
{
  {
    init_simple_test("aBFu0c_BFu7c_Uc");
    static STRUCT_IF_C aBFu0c_BFu7c_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_Uc, aBFu0c_BFu7c_Uc)
//============================================================================



static void Test_aBFu0c_BFu7c_Ui()
{
  {
    init_simple_test("aBFu0c_BFu7c_Ui");
    static STRUCT_IF_C aBFu0c_BFu7c_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_Ui, aBFu0c_BFu7c_Ui)
//============================================================================



static void Test_aBFu0c_BFu7c_Ul()
{
  {
    init_simple_test("aBFu0c_BFu7c_Ul");
    static STRUCT_IF_C aBFu0c_BFu7c_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_Ul, aBFu0c_BFu7c_Ul)
//============================================================================



static void Test_aBFu0c_BFu7c_Us()
{
  {
    init_simple_test("aBFu0c_BFu7c_Us");
    static STRUCT_IF_C aBFu0c_BFu7c_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_Us, aBFu0c_BFu7c_Us)
//============================================================================



static void Test_aBFu0c_BFu7c_Vp()
{
  {
    init_simple_test("aBFu0c_BFu7c_Vp");
    static STRUCT_IF_C aBFu0c_BFu7c_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7c_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7c_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7c_Vp, aBFu0c_BFu7c_Vp)
//============================================================================



static void Test_aBFu0c_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i, aBFu0c_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu0c, aBFu0c_BFu7i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu7i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu0i, aBFu0c_BFu7i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu7i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu0ll, aBFu0c_BFu7i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu7i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu0s, aBFu0c_BFu7i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7i_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu15i, aBFu0c_BFu7i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7i_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu15ll, aBFu0c_BFu7i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7i_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu15s, aBFu0c_BFu7i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7i_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu16i, aBFu0c_BFu7i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7i_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu16ll, aBFu0c_BFu7i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7i_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu16s, aBFu0c_BFu7i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7i_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu17i, aBFu0c_BFu7i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7i_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu17ll, aBFu0c_BFu7i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu1c, aBFu0c_BFu7i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu1i, aBFu0c_BFu7i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu1ll, aBFu0c_BFu7i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu1s, aBFu0c_BFu7i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7i_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu31i, aBFu0c_BFu7i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7i_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu31ll, aBFu0c_BFu7i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7i_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu32i, aBFu0c_BFu7i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7i_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu32ll, aBFu0c_BFu7i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu0c_BFu7i_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu7i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu33, aBFu0c_BFu7i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7i_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu7c, aBFu0c_BFu7i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7i_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu7i, aBFu0c_BFu7i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7i_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu7ll, aBFu0c_BFu7i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7i_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu7s, aBFu0c_BFu7i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7i_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu8c, aBFu0c_BFu7i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7i_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu8i, aBFu0c_BFu7i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7i_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu8ll, aBFu0c_BFu7i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7i_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu8s, aBFu0c_BFu7i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7i_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu9i, aBFu0c_BFu7i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7i_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu9ll, aBFu0c_BFu7i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu7i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu7i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu7i_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7i_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_BFu9s, aBFu0c_BFu7i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu7i_C()
{
  {
    init_simple_test("aBFu0c_BFu7i_C");
    static STRUCT_IF_C aBFu0c_BFu7i_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_C, aBFu0c_BFu7i_C)
//============================================================================



static void Test_aBFu0c_BFu7i_D()
{
  {
    init_simple_test("aBFu0c_BFu7i_D");
    static STRUCT_IF_C aBFu0c_BFu7i_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_D, aBFu0c_BFu7i_D)
//============================================================================



static void Test_aBFu0c_BFu7i_F()
{
  {
    init_simple_test("aBFu0c_BFu7i_F");
    static STRUCT_IF_C aBFu0c_BFu7i_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_F, aBFu0c_BFu7i_F)
//============================================================================



static void Test_aBFu0c_BFu7i_I()
{
  {
    init_simple_test("aBFu0c_BFu7i_I");
    static STRUCT_IF_C aBFu0c_BFu7i_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_I, aBFu0c_BFu7i_I)
//============================================================================



static void Test_aBFu0c_BFu7i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu7i_Ip");
    static STRUCT_IF_C aBFu0c_BFu7i_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_Ip, aBFu0c_BFu7i_Ip)
//============================================================================



static void Test_aBFu0c_BFu7i_L()
{
  {
    init_simple_test("aBFu0c_BFu7i_L");
    static STRUCT_IF_C aBFu0c_BFu7i_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_L, aBFu0c_BFu7i_L)
//============================================================================



static void Test_aBFu0c_BFu7i_S()
{
  {
    init_simple_test("aBFu0c_BFu7i_S");
    static STRUCT_IF_C aBFu0c_BFu7i_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_S, aBFu0c_BFu7i_S)
//============================================================================



static void Test_aBFu0c_BFu7i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu7i_Uc");
    static STRUCT_IF_C aBFu0c_BFu7i_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_Uc, aBFu0c_BFu7i_Uc)
//============================================================================



static void Test_aBFu0c_BFu7i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu7i_Ui");
    static STRUCT_IF_C aBFu0c_BFu7i_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_Ui, aBFu0c_BFu7i_Ui)
//============================================================================



static void Test_aBFu0c_BFu7i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu7i_Ul");
    static STRUCT_IF_C aBFu0c_BFu7i_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_Ul, aBFu0c_BFu7i_Ul)
//============================================================================



static void Test_aBFu0c_BFu7i_Us()
{
  {
    init_simple_test("aBFu0c_BFu7i_Us");
    static STRUCT_IF_C aBFu0c_BFu7i_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_Us, aBFu0c_BFu7i_Us)
//============================================================================



static void Test_aBFu0c_BFu7i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu7i_Vp");
    static STRUCT_IF_C aBFu0c_BFu7i_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7i_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7i_Vp, aBFu0c_BFu7i_Vp)
//============================================================================



static void Test_aBFu0c_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll, aBFu0c_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu0c, aBFu0c_BFu7ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu7ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu0i, aBFu0c_BFu7ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu7ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu0ll, aBFu0c_BFu7ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu7ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu0s, aBFu0c_BFu7ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7ll_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu15i, aBFu0c_BFu7ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7ll_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu15ll, aBFu0c_BFu7ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7ll_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu15s, aBFu0c_BFu7ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7ll_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu16i, aBFu0c_BFu7ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7ll_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu16ll, aBFu0c_BFu7ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7ll_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu16s, aBFu0c_BFu7ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7ll_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu17i, aBFu0c_BFu7ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7ll_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu17ll, aBFu0c_BFu7ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu1c, aBFu0c_BFu7ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu1i, aBFu0c_BFu7ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu1ll, aBFu0c_BFu7ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu1s, aBFu0c_BFu7ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7ll_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu31i, aBFu0c_BFu7ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7ll_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu31ll, aBFu0c_BFu7ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7ll_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu32i, aBFu0c_BFu7ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7ll_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu32ll, aBFu0c_BFu7ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu0c_BFu7ll_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu7ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu33, aBFu0c_BFu7ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7ll_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu7c, aBFu0c_BFu7ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7ll_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu7i, aBFu0c_BFu7ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7ll_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu7ll, aBFu0c_BFu7ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7ll_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu7s, aBFu0c_BFu7ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7ll_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu8c, aBFu0c_BFu7ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7ll_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu8i, aBFu0c_BFu7ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7ll_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu8ll, aBFu0c_BFu7ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7ll_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu8s, aBFu0c_BFu7ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7ll_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu9i, aBFu0c_BFu7ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7ll_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu9ll, aBFu0c_BFu7ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu7ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu7ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu7ll_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7ll_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_BFu9s, aBFu0c_BFu7ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu7ll_C()
{
  {
    init_simple_test("aBFu0c_BFu7ll_C");
    static STRUCT_IF_C aBFu0c_BFu7ll_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_C, aBFu0c_BFu7ll_C)
//============================================================================



static void Test_aBFu0c_BFu7ll_D()
{
  {
    init_simple_test("aBFu0c_BFu7ll_D");
    static STRUCT_IF_C aBFu0c_BFu7ll_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_D, aBFu0c_BFu7ll_D)
//============================================================================



static void Test_aBFu0c_BFu7ll_F()
{
  {
    init_simple_test("aBFu0c_BFu7ll_F");
    static STRUCT_IF_C aBFu0c_BFu7ll_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_F, aBFu0c_BFu7ll_F)
//============================================================================



static void Test_aBFu0c_BFu7ll_I()
{
  {
    init_simple_test("aBFu0c_BFu7ll_I");
    static STRUCT_IF_C aBFu0c_BFu7ll_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_I, aBFu0c_BFu7ll_I)
//============================================================================



static void Test_aBFu0c_BFu7ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu7ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu7ll_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_Ip, aBFu0c_BFu7ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu7ll_L()
{
  {
    init_simple_test("aBFu0c_BFu7ll_L");
    static STRUCT_IF_C aBFu0c_BFu7ll_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_L, aBFu0c_BFu7ll_L)
//============================================================================



static void Test_aBFu0c_BFu7ll_S()
{
  {
    init_simple_test("aBFu0c_BFu7ll_S");
    static STRUCT_IF_C aBFu0c_BFu7ll_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_S, aBFu0c_BFu7ll_S)
//============================================================================



static void Test_aBFu0c_BFu7ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu7ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu7ll_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_Uc, aBFu0c_BFu7ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu7ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu7ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu7ll_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_Ui, aBFu0c_BFu7ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu7ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu7ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu7ll_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_Ul, aBFu0c_BFu7ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu7ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu7ll_Us");
    static STRUCT_IF_C aBFu0c_BFu7ll_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_Us, aBFu0c_BFu7ll_Us)
//============================================================================



static void Test_aBFu0c_BFu7ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu7ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu7ll_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7ll_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7ll_Vp, aBFu0c_BFu7ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s, aBFu0c_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu0c, aBFu0c_BFu7s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu7s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu0i, aBFu0c_BFu7s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu7s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu0ll, aBFu0c_BFu7s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu7s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu0s, aBFu0c_BFu7s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7s_BFu15i");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu15i, aBFu0c_BFu7s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7s_BFu15ll");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu15ll, aBFu0c_BFu7s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, 1, "aBFu0c_BFu7s_BFu15s");
    set_bf_and_test(lv, v2, 0, 7, 15, hide_ull(1LL<<14), "aBFu0c_BFu7s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu15s, aBFu0c_BFu7s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7s_BFu16i");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu16i, aBFu0c_BFu7s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7s_BFu16ll");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu16ll, aBFu0c_BFu7s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, 1, "aBFu0c_BFu7s_BFu16s");
    set_bf_and_test(lv, v2, 0, 7, 16, hide_ull(1LL<<15), "aBFu0c_BFu7s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu16s, aBFu0c_BFu7s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7s_BFu17i");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu17i, aBFu0c_BFu7s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, 1, "aBFu0c_BFu7s_BFu17ll");
    set_bf_and_test(lv, v2, 0, 7, 17, hide_ull(1LL<<16), "aBFu0c_BFu7s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu17ll, aBFu0c_BFu7s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu1c");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu1c, aBFu0c_BFu7s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu1i");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu1i, aBFu0c_BFu7s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu1ll");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu1ll, aBFu0c_BFu7s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu7s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu1s");
    set_bf_and_test(lv, v2, 0, 7, 1, 1, "aBFu0c_BFu7s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu1s, aBFu0c_BFu7s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7s_BFu31i");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu31i, aBFu0c_BFu7s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, 1, "aBFu0c_BFu7s_BFu31ll");
    set_bf_and_test(lv, v2, 0, 7, 31, hide_ull(1LL<<30), "aBFu0c_BFu7s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu31ll, aBFu0c_BFu7s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7s_BFu32i");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu32i, aBFu0c_BFu7s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, 1, "aBFu0c_BFu7s_BFu32ll");
    set_bf_and_test(lv, v2, 0, 7, 32, hide_ull(1LL<<31), "aBFu0c_BFu7s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu32ll, aBFu0c_BFu7s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, 1, "aBFu0c_BFu7s_BFu33");
    set_bf_and_test(lv, v2, 0, 7, 33, hide_ull(1LL<<32), "aBFu0c_BFu7s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu33, aBFu0c_BFu7s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7s_BFu7c");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu7c, aBFu0c_BFu7s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7s_BFu7i");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu7i, aBFu0c_BFu7s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7s_BFu7ll");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu7ll, aBFu0c_BFu7s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, 1, "aBFu0c_BFu7s_BFu7s");
    set_bf_and_test(lv, v2, 0, 7, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu7s, aBFu0c_BFu7s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7s_BFu8c");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu8c, aBFu0c_BFu7s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7s_BFu8i");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu8i, aBFu0c_BFu7s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7s_BFu8ll");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu8ll, aBFu0c_BFu7s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, 1, "aBFu0c_BFu7s_BFu8s");
    set_bf_and_test(lv, v2, 0, 7, 8, hide_ull(1LL<<7), "aBFu0c_BFu7s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu8s, aBFu0c_BFu7s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7s_BFu9i");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu9i, aBFu0c_BFu7s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7s_BFu9ll");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu9ll, aBFu0c_BFu7s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu7s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu7s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu7s_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, 1, "aBFu0c_BFu7s_BFu9s");
    set_bf_and_test(lv, v2, 0, 7, 9, hide_ull(1LL<<8), "aBFu0c_BFu7s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_BFu9s, aBFu0c_BFu7s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu7s_C()
{
  {
    init_simple_test("aBFu0c_BFu7s_C");
    static STRUCT_IF_C aBFu0c_BFu7s_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_C)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_C");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_C, aBFu0c_BFu7s_C)
//============================================================================



static void Test_aBFu0c_BFu7s_D()
{
  {
    init_simple_test("aBFu0c_BFu7s_D");
    static STRUCT_IF_C aBFu0c_BFu7s_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_D)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_D");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_D, aBFu0c_BFu7s_D)
//============================================================================



static void Test_aBFu0c_BFu7s_F()
{
  {
    init_simple_test("aBFu0c_BFu7s_F");
    static STRUCT_IF_C aBFu0c_BFu7s_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_F)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_F");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_F, aBFu0c_BFu7s_F)
//============================================================================



static void Test_aBFu0c_BFu7s_I()
{
  {
    init_simple_test("aBFu0c_BFu7s_I");
    static STRUCT_IF_C aBFu0c_BFu7s_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_I)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_I");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_I, aBFu0c_BFu7s_I)
//============================================================================



static void Test_aBFu0c_BFu7s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu7s_Ip");
    static STRUCT_IF_C aBFu0c_BFu7s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_Ip, aBFu0c_BFu7s_Ip)
//============================================================================



static void Test_aBFu0c_BFu7s_L()
{
  {
    init_simple_test("aBFu0c_BFu7s_L");
    static STRUCT_IF_C aBFu0c_BFu7s_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_L)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_L");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_L, aBFu0c_BFu7s_L)
//============================================================================



static void Test_aBFu0c_BFu7s_S()
{
  {
    init_simple_test("aBFu0c_BFu7s_S");
    static STRUCT_IF_C aBFu0c_BFu7s_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_S)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_S");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_S, aBFu0c_BFu7s_S)
//============================================================================



static void Test_aBFu0c_BFu7s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu7s_Uc");
    static STRUCT_IF_C aBFu0c_BFu7s_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu7s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_Uc, aBFu0c_BFu7s_Uc)
//============================================================================



static void Test_aBFu0c_BFu7s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu7s_Ui");
    static STRUCT_IF_C aBFu0c_BFu7s_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu7s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_Ui, aBFu0c_BFu7s_Ui)
//============================================================================



static void Test_aBFu0c_BFu7s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu7s_Ul");
    static STRUCT_IF_C aBFu0c_BFu7s_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu7s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_Ul, aBFu0c_BFu7s_Ul)
//============================================================================



static void Test_aBFu0c_BFu7s_Us()
{
  {
    init_simple_test("aBFu0c_BFu7s_Us");
    static STRUCT_IF_C aBFu0c_BFu7s_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu7s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_Us");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_Us, aBFu0c_BFu7s_Us)
//============================================================================



static void Test_aBFu0c_BFu7s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu7s_Vp");
    static STRUCT_IF_C aBFu0c_BFu7s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu7s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu7s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0c_BFu7s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu7s_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu7s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu7s_Vp, aBFu0c_BFu7s_Vp)
//============================================================================



static void Test_aBFu0c_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c, aBFu0c_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu0c, aBFu0c_BFu8c_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu8c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu0i, aBFu0c_BFu8c_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu8c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu0ll, aBFu0c_BFu8c_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu8c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu0s, aBFu0c_BFu8c_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8c_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu15i, aBFu0c_BFu8c_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8c_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu15ll, aBFu0c_BFu8c_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8c_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu15s, aBFu0c_BFu8c_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8c_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu16i, aBFu0c_BFu8c_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8c_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu16ll, aBFu0c_BFu8c_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8c_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu16s, aBFu0c_BFu8c_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8c_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu17i, aBFu0c_BFu8c_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8c_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu17ll, aBFu0c_BFu8c_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu1c, aBFu0c_BFu8c_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu1i, aBFu0c_BFu8c_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu1ll, aBFu0c_BFu8c_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu1s, aBFu0c_BFu8c_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8c_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu31i, aBFu0c_BFu8c_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8c_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu31ll, aBFu0c_BFu8c_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8c_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu32i, aBFu0c_BFu8c_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8c_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu32ll, aBFu0c_BFu8c_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu33");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu8c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, 1, "aBFu0c_BFu8c_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu8c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu33, aBFu0c_BFu8c_BFu33)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8c_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu7c, aBFu0c_BFu8c_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8c_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu7i, aBFu0c_BFu8c_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8c_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu7ll, aBFu0c_BFu8c_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8c_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu7s, aBFu0c_BFu8c_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8c_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu8c, aBFu0c_BFu8c_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8c_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu8i, aBFu0c_BFu8c_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8c_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu8ll, aBFu0c_BFu8c_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8c_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu8s, aBFu0c_BFu8c_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8c_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu9i, aBFu0c_BFu8c_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8c_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu9ll, aBFu0c_BFu8c_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu8c_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu8c_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu8c_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8c_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_BFu9s, aBFu0c_BFu8c_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu8c_C()
{
  {
    init_simple_test("aBFu0c_BFu8c_C");
    static STRUCT_IF_C aBFu0c_BFu8c_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_C, aBFu0c_BFu8c_C)
//============================================================================



static void Test_aBFu0c_BFu8c_D()
{
  {
    init_simple_test("aBFu0c_BFu8c_D");
    static STRUCT_IF_C aBFu0c_BFu8c_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_D, aBFu0c_BFu8c_D)
//============================================================================



static void Test_aBFu0c_BFu8c_F()
{
  {
    init_simple_test("aBFu0c_BFu8c_F");
    static STRUCT_IF_C aBFu0c_BFu8c_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_F, aBFu0c_BFu8c_F)
//============================================================================



static void Test_aBFu0c_BFu8c_I()
{
  {
    init_simple_test("aBFu0c_BFu8c_I");
    static STRUCT_IF_C aBFu0c_BFu8c_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_I, aBFu0c_BFu8c_I)
//============================================================================



static void Test_aBFu0c_BFu8c_Ip()
{
  {
    init_simple_test("aBFu0c_BFu8c_Ip");
    static STRUCT_IF_C aBFu0c_BFu8c_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_Ip, aBFu0c_BFu8c_Ip)
//============================================================================



static void Test_aBFu0c_BFu8c_L()
{
  {
    init_simple_test("aBFu0c_BFu8c_L");
    static STRUCT_IF_C aBFu0c_BFu8c_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_L, aBFu0c_BFu8c_L)
//============================================================================



static void Test_aBFu0c_BFu8c_S()
{
  {
    init_simple_test("aBFu0c_BFu8c_S");
    static STRUCT_IF_C aBFu0c_BFu8c_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_S, aBFu0c_BFu8c_S)
//============================================================================



static void Test_aBFu0c_BFu8c_Uc()
{
  {
    init_simple_test("aBFu0c_BFu8c_Uc");
    static STRUCT_IF_C aBFu0c_BFu8c_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_Uc, aBFu0c_BFu8c_Uc)
//============================================================================



static void Test_aBFu0c_BFu8c_Ui()
{
  {
    init_simple_test("aBFu0c_BFu8c_Ui");
    static STRUCT_IF_C aBFu0c_BFu8c_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_Ui, aBFu0c_BFu8c_Ui)
//============================================================================



static void Test_aBFu0c_BFu8c_Ul()
{
  {
    init_simple_test("aBFu0c_BFu8c_Ul");
    static STRUCT_IF_C aBFu0c_BFu8c_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_Ul, aBFu0c_BFu8c_Ul)
//============================================================================



static void Test_aBFu0c_BFu8c_Us()
{
  {
    init_simple_test("aBFu0c_BFu8c_Us");
    static STRUCT_IF_C aBFu0c_BFu8c_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_Us, aBFu0c_BFu8c_Us)
//============================================================================



static void Test_aBFu0c_BFu8c_Vp()
{
  {
    init_simple_test("aBFu0c_BFu8c_Vp");
    static STRUCT_IF_C aBFu0c_BFu8c_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8c_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8c_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8c_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8c_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8c_Vp, aBFu0c_BFu8c_Vp)
//============================================================================



static void Test_aBFu0c_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i, aBFu0c_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu0c, aBFu0c_BFu8i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu8i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu0i, aBFu0c_BFu8i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu8i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu0ll, aBFu0c_BFu8i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu8i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu0s, aBFu0c_BFu8i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8i_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu15i, aBFu0c_BFu8i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu15ll, aBFu0c_BFu8i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8i_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu15s, aBFu0c_BFu8i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8i_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu16i, aBFu0c_BFu8i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu16ll, aBFu0c_BFu8i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8i_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu16s, aBFu0c_BFu8i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8i_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu17i, aBFu0c_BFu8i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu17ll, aBFu0c_BFu8i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu1c, aBFu0c_BFu8i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu1i, aBFu0c_BFu8i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu1ll, aBFu0c_BFu8i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu1s, aBFu0c_BFu8i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8i_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu31i, aBFu0c_BFu8i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu31ll, aBFu0c_BFu8i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8i_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu32i, aBFu0c_BFu8i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu32ll, aBFu0c_BFu8i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu8i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, 1, "aBFu0c_BFu8i_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu8i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu33, aBFu0c_BFu8i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8i_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu7c, aBFu0c_BFu8i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8i_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu7i, aBFu0c_BFu8i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu7ll, aBFu0c_BFu8i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8i_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu7s, aBFu0c_BFu8i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8i_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu8c, aBFu0c_BFu8i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8i_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu8i, aBFu0c_BFu8i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu8ll, aBFu0c_BFu8i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8i_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu8s, aBFu0c_BFu8i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8i_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu9i, aBFu0c_BFu8i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu9ll, aBFu0c_BFu8i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu8i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu8i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu8i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8i_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_BFu9s, aBFu0c_BFu8i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu8i_C()
{
  {
    init_simple_test("aBFu0c_BFu8i_C");
    static STRUCT_IF_C aBFu0c_BFu8i_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_C, aBFu0c_BFu8i_C)
//============================================================================



static void Test_aBFu0c_BFu8i_D()
{
  {
    init_simple_test("aBFu0c_BFu8i_D");
    static STRUCT_IF_C aBFu0c_BFu8i_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_D, aBFu0c_BFu8i_D)
//============================================================================



static void Test_aBFu0c_BFu8i_F()
{
  {
    init_simple_test("aBFu0c_BFu8i_F");
    static STRUCT_IF_C aBFu0c_BFu8i_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_F, aBFu0c_BFu8i_F)
//============================================================================



static void Test_aBFu0c_BFu8i_I()
{
  {
    init_simple_test("aBFu0c_BFu8i_I");
    static STRUCT_IF_C aBFu0c_BFu8i_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_I, aBFu0c_BFu8i_I)
//============================================================================



static void Test_aBFu0c_BFu8i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu8i_Ip");
    static STRUCT_IF_C aBFu0c_BFu8i_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_Ip, aBFu0c_BFu8i_Ip)
//============================================================================



static void Test_aBFu0c_BFu8i_L()
{
  {
    init_simple_test("aBFu0c_BFu8i_L");
    static STRUCT_IF_C aBFu0c_BFu8i_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_L, aBFu0c_BFu8i_L)
//============================================================================



static void Test_aBFu0c_BFu8i_S()
{
  {
    init_simple_test("aBFu0c_BFu8i_S");
    static STRUCT_IF_C aBFu0c_BFu8i_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_S, aBFu0c_BFu8i_S)
//============================================================================



static void Test_aBFu0c_BFu8i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu8i_Uc");
    static STRUCT_IF_C aBFu0c_BFu8i_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_Uc, aBFu0c_BFu8i_Uc)
//============================================================================



static void Test_aBFu0c_BFu8i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu8i_Ui");
    static STRUCT_IF_C aBFu0c_BFu8i_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_Ui, aBFu0c_BFu8i_Ui)
//============================================================================



static void Test_aBFu0c_BFu8i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu8i_Ul");
    static STRUCT_IF_C aBFu0c_BFu8i_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_Ul, aBFu0c_BFu8i_Ul)
//============================================================================



static void Test_aBFu0c_BFu8i_Us()
{
  {
    init_simple_test("aBFu0c_BFu8i_Us");
    static STRUCT_IF_C aBFu0c_BFu8i_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_Us, aBFu0c_BFu8i_Us)
//============================================================================



static void Test_aBFu0c_BFu8i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu8i_Vp");
    static STRUCT_IF_C aBFu0c_BFu8i_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8i_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8i_Vp, aBFu0c_BFu8i_Vp)
//============================================================================



static void Test_aBFu0c_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll, aBFu0c_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu0c, aBFu0c_BFu8ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu8ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu0i, aBFu0c_BFu8ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu8ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu0ll, aBFu0c_BFu8ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu8ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu0s, aBFu0c_BFu8ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu15i, aBFu0c_BFu8ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu15ll, aBFu0c_BFu8ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu15s, aBFu0c_BFu8ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu16i, aBFu0c_BFu8ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu16ll, aBFu0c_BFu8ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu16s, aBFu0c_BFu8ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu17i, aBFu0c_BFu8ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu17ll, aBFu0c_BFu8ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu1c, aBFu0c_BFu8ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu1i, aBFu0c_BFu8ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu1ll, aBFu0c_BFu8ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu1s, aBFu0c_BFu8ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu31i, aBFu0c_BFu8ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu31ll, aBFu0c_BFu8ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu32i, aBFu0c_BFu8ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu32ll, aBFu0c_BFu8ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu8ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, 1, "aBFu0c_BFu8ll_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu8ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu33, aBFu0c_BFu8ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu7c, aBFu0c_BFu8ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu7i, aBFu0c_BFu8ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu7ll, aBFu0c_BFu8ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu7s, aBFu0c_BFu8ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu8c, aBFu0c_BFu8ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu8i, aBFu0c_BFu8ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu8ll, aBFu0c_BFu8ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu8s, aBFu0c_BFu8ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu9i, aBFu0c_BFu8ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu9ll, aBFu0c_BFu8ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu8ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu8ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu8ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_BFu9s, aBFu0c_BFu8ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu8ll_C()
{
  {
    init_simple_test("aBFu0c_BFu8ll_C");
    static STRUCT_IF_C aBFu0c_BFu8ll_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_C, aBFu0c_BFu8ll_C)
//============================================================================



static void Test_aBFu0c_BFu8ll_D()
{
  {
    init_simple_test("aBFu0c_BFu8ll_D");
    static STRUCT_IF_C aBFu0c_BFu8ll_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_D, aBFu0c_BFu8ll_D)
//============================================================================



static void Test_aBFu0c_BFu8ll_F()
{
  {
    init_simple_test("aBFu0c_BFu8ll_F");
    static STRUCT_IF_C aBFu0c_BFu8ll_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_F, aBFu0c_BFu8ll_F)
//============================================================================



static void Test_aBFu0c_BFu8ll_I()
{
  {
    init_simple_test("aBFu0c_BFu8ll_I");
    static STRUCT_IF_C aBFu0c_BFu8ll_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_I, aBFu0c_BFu8ll_I)
//============================================================================



static void Test_aBFu0c_BFu8ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu8ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu8ll_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_Ip, aBFu0c_BFu8ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu8ll_L()
{
  {
    init_simple_test("aBFu0c_BFu8ll_L");
    static STRUCT_IF_C aBFu0c_BFu8ll_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_L, aBFu0c_BFu8ll_L)
//============================================================================



static void Test_aBFu0c_BFu8ll_S()
{
  {
    init_simple_test("aBFu0c_BFu8ll_S");
    static STRUCT_IF_C aBFu0c_BFu8ll_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_S, aBFu0c_BFu8ll_S)
//============================================================================



static void Test_aBFu0c_BFu8ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu8ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu8ll_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_Uc, aBFu0c_BFu8ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu8ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu8ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu8ll_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_Ui, aBFu0c_BFu8ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu8ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu8ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu8ll_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_Ul, aBFu0c_BFu8ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu8ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu8ll_Us");
    static STRUCT_IF_C aBFu0c_BFu8ll_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_Us, aBFu0c_BFu8ll_Us)
//============================================================================



static void Test_aBFu0c_BFu8ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu8ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu8ll_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8ll_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8ll_Vp, aBFu0c_BFu8ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s, aBFu0c_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_BFu8s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu0c, aBFu0c_BFu8s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu8s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu0i, aBFu0c_BFu8s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu8s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu0ll, aBFu0c_BFu8s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_BFu8s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu0s, aBFu0c_BFu8s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8s_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu15i, aBFu0c_BFu8s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu15ll, aBFu0c_BFu8s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_BFu8s_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_BFu8s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu15s, aBFu0c_BFu8s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8s_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu16i, aBFu0c_BFu8s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu16ll, aBFu0c_BFu8s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_BFu8s_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_BFu8s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu16s, aBFu0c_BFu8s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8s_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu17i, aBFu0c_BFu8s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu8s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_BFu8s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_BFu8s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu17ll, aBFu0c_BFu8s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu1c");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu1c, aBFu0c_BFu8s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu1i");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu1i, aBFu0c_BFu8s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu1ll, aBFu0c_BFu8s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu1s");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_BFu8s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu1s, aBFu0c_BFu8s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8s_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu31i, aBFu0c_BFu8s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_BFu8s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_BFu8s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu31ll, aBFu0c_BFu8s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8s_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu32i, aBFu0c_BFu8s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_BFu8s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_BFu8s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu32ll, aBFu0c_BFu8s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu8s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, 1, "aBFu0c_BFu8s_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, hide_ull(1LL<<32), "aBFu0c_BFu8s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu33, aBFu0c_BFu8s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8s_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu7c, aBFu0c_BFu8s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8s_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu7i, aBFu0c_BFu8s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu7ll, aBFu0c_BFu8s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_BFu8s_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_BFu8s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu7s, aBFu0c_BFu8s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8s_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu8c, aBFu0c_BFu8s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8s_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu8i, aBFu0c_BFu8s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu8ll, aBFu0c_BFu8s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_BFu8s_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu8s, aBFu0c_BFu8s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8s_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu9i, aBFu0c_BFu8s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu9ll, aBFu0c_BFu8s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu8s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu8s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu8s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_BFu8s_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu8s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_BFu9s, aBFu0c_BFu8s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu8s_C()
{
  {
    init_simple_test("aBFu0c_BFu8s_C");
    static STRUCT_IF_C aBFu0c_BFu8s_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_C)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_C");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_C");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_C, aBFu0c_BFu8s_C)
//============================================================================



static void Test_aBFu0c_BFu8s_D()
{
  {
    init_simple_test("aBFu0c_BFu8s_D");
    static STRUCT_IF_C aBFu0c_BFu8s_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_D)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_D");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_D");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_D, aBFu0c_BFu8s_D)
//============================================================================



static void Test_aBFu0c_BFu8s_F()
{
  {
    init_simple_test("aBFu0c_BFu8s_F");
    static STRUCT_IF_C aBFu0c_BFu8s_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_F)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_F");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_F");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_F, aBFu0c_BFu8s_F)
//============================================================================



static void Test_aBFu0c_BFu8s_I()
{
  {
    init_simple_test("aBFu0c_BFu8s_I");
    static STRUCT_IF_C aBFu0c_BFu8s_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_I)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_I");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_I");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_I, aBFu0c_BFu8s_I)
//============================================================================



static void Test_aBFu0c_BFu8s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu8s_Ip");
    static STRUCT_IF_C aBFu0c_BFu8s_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_Ip");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_Ip, aBFu0c_BFu8s_Ip)
//============================================================================



static void Test_aBFu0c_BFu8s_L()
{
  {
    init_simple_test("aBFu0c_BFu8s_L");
    static STRUCT_IF_C aBFu0c_BFu8s_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_L)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_L");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_L");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_L, aBFu0c_BFu8s_L)
//============================================================================



static void Test_aBFu0c_BFu8s_S()
{
  {
    init_simple_test("aBFu0c_BFu8s_S");
    static STRUCT_IF_C aBFu0c_BFu8s_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_S)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_S");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_S");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_S, aBFu0c_BFu8s_S)
//============================================================================



static void Test_aBFu0c_BFu8s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu8s_Uc");
    static STRUCT_IF_C aBFu0c_BFu8s_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu8s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_Uc");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_Uc, aBFu0c_BFu8s_Uc)
//============================================================================



static void Test_aBFu0c_BFu8s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu8s_Ui");
    static STRUCT_IF_C aBFu0c_BFu8s_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu8s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_Ui");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_Ui, aBFu0c_BFu8s_Ui)
//============================================================================



static void Test_aBFu0c_BFu8s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu8s_Ul");
    static STRUCT_IF_C aBFu0c_BFu8s_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_BFu8s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_Ul");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_Ul, aBFu0c_BFu8s_Ul)
//============================================================================



static void Test_aBFu0c_BFu8s_Us()
{
  {
    init_simple_test("aBFu0c_BFu8s_Us");
    static STRUCT_IF_C aBFu0c_BFu8s_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu8s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_Us");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_Us");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_Us, aBFu0c_BFu8s_Us)
//============================================================================



static void Test_aBFu0c_BFu8s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu8s_Vp");
    static STRUCT_IF_C aBFu0c_BFu8s_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_BFu8s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu8s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0c_BFu8s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0c_BFu8s_Vp");
    check_field_offset(lv, v2, 1, "aBFu0c_BFu8s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu8s_Vp, aBFu0c_BFu8s_Vp)
//============================================================================



static void Test_aBFu0c_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i, aBFu0c_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu0c, aBFu0c_BFu9i_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu9i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu0i, aBFu0c_BFu9i_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu9i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu0ll, aBFu0c_BFu9i_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu0s, aBFu0c_BFu9i_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9i_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu15i, aBFu0c_BFu9i_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu15ll, aBFu0c_BFu9i_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9i_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu15s, aBFu0c_BFu9i_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9i_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu16i, aBFu0c_BFu9i_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu16ll, aBFu0c_BFu9i_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9i_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu16s, aBFu0c_BFu9i_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "aBFu0c_BFu9i_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu9i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu17i, aBFu0c_BFu9i_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "aBFu0c_BFu9i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu9i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu17ll, aBFu0c_BFu9i_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu1c, aBFu0c_BFu9i_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu1i, aBFu0c_BFu9i_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu1ll, aBFu0c_BFu9i_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu1s, aBFu0c_BFu9i_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu9i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "aBFu0c_BFu9i_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu9i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu31i, aBFu0c_BFu9i_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu9i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "aBFu0c_BFu9i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu9i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu31ll, aBFu0c_BFu9i_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "aBFu0c_BFu9i_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu9i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu32i, aBFu0c_BFu9i_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "aBFu0c_BFu9i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu9i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu32ll, aBFu0c_BFu9i_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu33");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "aBFu0c_BFu9i_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu9i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu33, aBFu0c_BFu9i_BFu33)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9i_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu7c, aBFu0c_BFu9i_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9i_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu7i, aBFu0c_BFu9i_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu7ll, aBFu0c_BFu9i_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9i_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu7s, aBFu0c_BFu9i_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9i_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu8c, aBFu0c_BFu9i_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9i_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu8i, aBFu0c_BFu9i_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu8ll, aBFu0c_BFu9i_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9i_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu8s, aBFu0c_BFu9i_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9i_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu9i, aBFu0c_BFu9i_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu9ll, aBFu0c_BFu9i_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu9i_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu9i_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu9i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9i_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_BFu9s, aBFu0c_BFu9i_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu9i_C()
{
  {
    init_simple_test("aBFu0c_BFu9i_C");
    static STRUCT_IF_C aBFu0c_BFu9i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_C, aBFu0c_BFu9i_C)
//============================================================================



static void Test_aBFu0c_BFu9i_D()
{
  {
    init_simple_test("aBFu0c_BFu9i_D");
    static STRUCT_IF_C aBFu0c_BFu9i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_D, aBFu0c_BFu9i_D)
//============================================================================



static void Test_aBFu0c_BFu9i_F()
{
  {
    init_simple_test("aBFu0c_BFu9i_F");
    static STRUCT_IF_C aBFu0c_BFu9i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_F, aBFu0c_BFu9i_F)
//============================================================================



static void Test_aBFu0c_BFu9i_I()
{
  {
    init_simple_test("aBFu0c_BFu9i_I");
    static STRUCT_IF_C aBFu0c_BFu9i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_I, aBFu0c_BFu9i_I)
//============================================================================



static void Test_aBFu0c_BFu9i_Ip()
{
  {
    init_simple_test("aBFu0c_BFu9i_Ip");
    static STRUCT_IF_C aBFu0c_BFu9i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu9i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_Ip, aBFu0c_BFu9i_Ip)
//============================================================================



static void Test_aBFu0c_BFu9i_L()
{
  {
    init_simple_test("aBFu0c_BFu9i_L");
    static STRUCT_IF_C aBFu0c_BFu9i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_L, aBFu0c_BFu9i_L)
//============================================================================



static void Test_aBFu0c_BFu9i_S()
{
  {
    init_simple_test("aBFu0c_BFu9i_S");
    static STRUCT_IF_C aBFu0c_BFu9i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_S, aBFu0c_BFu9i_S)
//============================================================================



static void Test_aBFu0c_BFu9i_Uc()
{
  {
    init_simple_test("aBFu0c_BFu9i_Uc");
    static STRUCT_IF_C aBFu0c_BFu9i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_Uc, aBFu0c_BFu9i_Uc)
//============================================================================



static void Test_aBFu0c_BFu9i_Ui()
{
  {
    init_simple_test("aBFu0c_BFu9i_Ui");
    static STRUCT_IF_C aBFu0c_BFu9i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_Ui, aBFu0c_BFu9i_Ui)
//============================================================================



static void Test_aBFu0c_BFu9i_Ul()
{
  {
    init_simple_test("aBFu0c_BFu9i_Ul");
    static STRUCT_IF_C aBFu0c_BFu9i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_Ul, aBFu0c_BFu9i_Ul)
//============================================================================



static void Test_aBFu0c_BFu9i_Us()
{
  {
    init_simple_test("aBFu0c_BFu9i_Us");
    static STRUCT_IF_C aBFu0c_BFu9i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_Us, aBFu0c_BFu9i_Us)
//============================================================================



static void Test_aBFu0c_BFu9i_Vp()
{
  {
    init_simple_test("aBFu0c_BFu9i_Vp");
    static STRUCT_IF_C aBFu0c_BFu9i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu9i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9i_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9i_Vp, aBFu0c_BFu9i_Vp)
//============================================================================



static void Test_aBFu0c_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll, aBFu0c_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu0c, aBFu0c_BFu9ll_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu9ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu0i, aBFu0c_BFu9ll_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu9ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu0ll, aBFu0c_BFu9ll_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu0s, aBFu0c_BFu9ll_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu15i, aBFu0c_BFu9ll_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu15ll, aBFu0c_BFu9ll_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu15s, aBFu0c_BFu9ll_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu16i, aBFu0c_BFu9ll_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu16ll, aBFu0c_BFu9ll_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu16s, aBFu0c_BFu9ll_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "aBFu0c_BFu9ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu9ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu17i, aBFu0c_BFu9ll_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "aBFu0c_BFu9ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu9ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu17ll, aBFu0c_BFu9ll_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu1c, aBFu0c_BFu9ll_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu1i, aBFu0c_BFu9ll_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu1ll, aBFu0c_BFu9ll_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu1s, aBFu0c_BFu9ll_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu9ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "aBFu0c_BFu9ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu9ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu31i, aBFu0c_BFu9ll_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu9ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "aBFu0c_BFu9ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu9ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu31ll, aBFu0c_BFu9ll_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "aBFu0c_BFu9ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu9ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu32i, aBFu0c_BFu9ll_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "aBFu0c_BFu9ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu9ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu32ll, aBFu0c_BFu9ll_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu33");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "aBFu0c_BFu9ll_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu9ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu33, aBFu0c_BFu9ll_BFu33)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu7c, aBFu0c_BFu9ll_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu7i, aBFu0c_BFu9ll_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu7ll, aBFu0c_BFu9ll_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu7s, aBFu0c_BFu9ll_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu8c, aBFu0c_BFu9ll_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu8i, aBFu0c_BFu9ll_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu8ll, aBFu0c_BFu9ll_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu8s, aBFu0c_BFu9ll_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu9i, aBFu0c_BFu9ll_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu9ll, aBFu0c_BFu9ll_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu9ll_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu9ll_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu9ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_BFu9s, aBFu0c_BFu9ll_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu9ll_C()
{
  {
    init_simple_test("aBFu0c_BFu9ll_C");
    static STRUCT_IF_C aBFu0c_BFu9ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_C, aBFu0c_BFu9ll_C)
//============================================================================



static void Test_aBFu0c_BFu9ll_D()
{
  {
    init_simple_test("aBFu0c_BFu9ll_D");
    static STRUCT_IF_C aBFu0c_BFu9ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_D, aBFu0c_BFu9ll_D)
//============================================================================



static void Test_aBFu0c_BFu9ll_F()
{
  {
    init_simple_test("aBFu0c_BFu9ll_F");
    static STRUCT_IF_C aBFu0c_BFu9ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_F, aBFu0c_BFu9ll_F)
//============================================================================



static void Test_aBFu0c_BFu9ll_I()
{
  {
    init_simple_test("aBFu0c_BFu9ll_I");
    static STRUCT_IF_C aBFu0c_BFu9ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_I, aBFu0c_BFu9ll_I)
//============================================================================



static void Test_aBFu0c_BFu9ll_Ip()
{
  {
    init_simple_test("aBFu0c_BFu9ll_Ip");
    static STRUCT_IF_C aBFu0c_BFu9ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu9ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_Ip, aBFu0c_BFu9ll_Ip)
//============================================================================



static void Test_aBFu0c_BFu9ll_L()
{
  {
    init_simple_test("aBFu0c_BFu9ll_L");
    static STRUCT_IF_C aBFu0c_BFu9ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_L, aBFu0c_BFu9ll_L)
//============================================================================



static void Test_aBFu0c_BFu9ll_S()
{
  {
    init_simple_test("aBFu0c_BFu9ll_S");
    static STRUCT_IF_C aBFu0c_BFu9ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_S, aBFu0c_BFu9ll_S)
//============================================================================



static void Test_aBFu0c_BFu9ll_Uc()
{
  {
    init_simple_test("aBFu0c_BFu9ll_Uc");
    static STRUCT_IF_C aBFu0c_BFu9ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_Uc, aBFu0c_BFu9ll_Uc)
//============================================================================



static void Test_aBFu0c_BFu9ll_Ui()
{
  {
    init_simple_test("aBFu0c_BFu9ll_Ui");
    static STRUCT_IF_C aBFu0c_BFu9ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_Ui, aBFu0c_BFu9ll_Ui)
//============================================================================



static void Test_aBFu0c_BFu9ll_Ul()
{
  {
    init_simple_test("aBFu0c_BFu9ll_Ul");
    static STRUCT_IF_C aBFu0c_BFu9ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_Ul, aBFu0c_BFu9ll_Ul)
//============================================================================



static void Test_aBFu0c_BFu9ll_Us()
{
  {
    init_simple_test("aBFu0c_BFu9ll_Us");
    static STRUCT_IF_C aBFu0c_BFu9ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_Us, aBFu0c_BFu9ll_Us)
//============================================================================



static void Test_aBFu0c_BFu9ll_Vp()
{
  {
    init_simple_test("aBFu0c_BFu9ll_Vp");
    static STRUCT_IF_C aBFu0c_BFu9ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu9ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9ll_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9ll_Vp, aBFu0c_BFu9ll_Vp)
//============================================================================



static void Test_aBFu0c_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s, aBFu0c_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu0c()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu0c");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu0c, aBFu0c_BFu9s_BFu0c)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu0i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu0i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_BFu9s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu0i, aBFu0c_BFu9s_BFu0i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu0ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu0ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_BFu9s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu0ll, aBFu0c_BFu9s_BFu0ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu0s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu0s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu0s, aBFu0c_BFu9s_BFu0s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu15i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu15i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9s_BFu15i");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu15i, aBFu0c_BFu9s_BFu15i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu15ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu15ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu15ll, aBFu0c_BFu9s_BFu15ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu15s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu15s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, 1, "aBFu0c_BFu9s_BFu15s");
    set_bf_and_test(lv, v2, 1, 1, 15, hide_ull(1LL<<14), "aBFu0c_BFu9s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu15s, aBFu0c_BFu9s_BFu15s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu16i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu16i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9s_BFu16i");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu16i, aBFu0c_BFu9s_BFu16i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu16ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu16ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu16ll, aBFu0c_BFu9s_BFu16ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu16s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu16s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, 1, "aBFu0c_BFu9s_BFu16s");
    set_bf_and_test(lv, v2, 1, 1, 16, hide_ull(1LL<<15), "aBFu0c_BFu9s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu16s, aBFu0c_BFu9s_BFu16s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu17i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu17i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "aBFu0c_BFu9s_BFu17i");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu9s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu17i, aBFu0c_BFu9s_BFu17i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu17ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu17ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, 1, "aBFu0c_BFu9s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 1, 17, hide_ull(1LL<<16), "aBFu0c_BFu9s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu17ll, aBFu0c_BFu9s_BFu17ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu1c()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu1c");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu1c");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu1c, aBFu0c_BFu9s_BFu1c)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu1i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu1i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu1i");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu1i, aBFu0c_BFu9s_BFu1i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu1ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu1ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu1ll, aBFu0c_BFu9s_BFu1ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu1s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu1s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu1s");
    set_bf_and_test(lv, v2, 1, 1, 1, 1, "aBFu0c_BFu9s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu1s, aBFu0c_BFu9s_BFu1s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu31i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu31i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu9s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "aBFu0c_BFu9s_BFu31i");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu9s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu31i, aBFu0c_BFu9s_BFu31i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu31ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu31ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_BFu9s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, 1, "aBFu0c_BFu9s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 1, 31, hide_ull(1LL<<30), "aBFu0c_BFu9s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu31ll, aBFu0c_BFu9s_BFu31ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu32i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu32i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "aBFu0c_BFu9s_BFu32i");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu9s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu32i, aBFu0c_BFu9s_BFu32i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu32ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu32ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, 1, "aBFu0c_BFu9s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 1, 32, hide_ull(1LL<<31), "aBFu0c_BFu9s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu32ll, aBFu0c_BFu9s_BFu32ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu33()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu33");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, 1, "aBFu0c_BFu9s_BFu33");
    set_bf_and_test(lv, v2, 1, 1, 33, hide_ull(1LL<<32), "aBFu0c_BFu9s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu33, aBFu0c_BFu9s_BFu33)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu7c()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu7c");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9s_BFu7c");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu7c, aBFu0c_BFu9s_BFu7c)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu7i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu7i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9s_BFu7i");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu7i, aBFu0c_BFu9s_BFu7i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu7ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu7ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu7ll, aBFu0c_BFu9s_BFu7ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu7s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu7s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_BFu9s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, 1, "aBFu0c_BFu9s_BFu7s");
    set_bf_and_test(lv, v2, 1, 1, 7, hide_ull(1LL<<6), "aBFu0c_BFu9s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu7s, aBFu0c_BFu9s_BFu7s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu8c()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu8c");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9s_BFu8c");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu8c, aBFu0c_BFu9s_BFu8c)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu8i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu8i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9s_BFu8i");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu8i, aBFu0c_BFu9s_BFu8i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu8ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu8ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu8ll, aBFu0c_BFu9s_BFu8ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu8s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu8s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, 1, "aBFu0c_BFu9s_BFu8s");
    set_bf_and_test(lv, v2, 1, 1, 8, hide_ull(1LL<<7), "aBFu0c_BFu9s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu8s, aBFu0c_BFu9s_BFu8s)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu9i()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu9i");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9s_BFu9i");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu9i, aBFu0c_BFu9s_BFu9i)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu9ll()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu9ll");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu9ll, aBFu0c_BFu9s_BFu9ll)
//============================================================================



static void Test_aBFu0c_BFu9s_BFu9s()
{
  {
    init_simple_test("aBFu0c_BFu9s_BFu9s");
    static STRUCT_IF_C aBFu0c_BFu9s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, 1, "aBFu0c_BFu9s_BFu9s");
    set_bf_and_test(lv, v2, 1, 1, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_BFu9s, aBFu0c_BFu9s_BFu9s)
//============================================================================



static void Test_aBFu0c_BFu9s_C()
{
  {
    init_simple_test("aBFu0c_BFu9s_C");
    static STRUCT_IF_C aBFu0c_BFu9s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_C)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_C");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_C");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_C, aBFu0c_BFu9s_C)
//============================================================================



static void Test_aBFu0c_BFu9s_D()
{
  {
    init_simple_test("aBFu0c_BFu9s_D");
    static STRUCT_IF_C aBFu0c_BFu9s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_D)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_D");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_D");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_D, aBFu0c_BFu9s_D)
//============================================================================



static void Test_aBFu0c_BFu9s_F()
{
  {
    init_simple_test("aBFu0c_BFu9s_F");
    static STRUCT_IF_C aBFu0c_BFu9s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_F)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_F");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_F");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_F, aBFu0c_BFu9s_F)
//============================================================================



static void Test_aBFu0c_BFu9s_I()
{
  {
    init_simple_test("aBFu0c_BFu9s_I");
    static STRUCT_IF_C aBFu0c_BFu9s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_I)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_I");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_I");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_I, aBFu0c_BFu9s_I)
//============================================================================



static void Test_aBFu0c_BFu9s_Ip()
{
  {
    init_simple_test("aBFu0c_BFu9s_Ip");
    static STRUCT_IF_C aBFu0c_BFu9s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu9s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_Ip");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_Ip, aBFu0c_BFu9s_Ip)
//============================================================================



static void Test_aBFu0c_BFu9s_L()
{
  {
    init_simple_test("aBFu0c_BFu9s_L");
    static STRUCT_IF_C aBFu0c_BFu9s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_L)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_L");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_L");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_L, aBFu0c_BFu9s_L)
//============================================================================



static void Test_aBFu0c_BFu9s_S()
{
  {
    init_simple_test("aBFu0c_BFu9s_S");
    static STRUCT_IF_C aBFu0c_BFu9s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_S)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_S");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_S");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_S, aBFu0c_BFu9s_S)
//============================================================================



static void Test_aBFu0c_BFu9s_Uc()
{
  {
    init_simple_test("aBFu0c_BFu9s_Uc");
    static STRUCT_IF_C aBFu0c_BFu9s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_BFu9s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_Uc");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_Uc, aBFu0c_BFu9s_Uc)
//============================================================================



static void Test_aBFu0c_BFu9s_Ui()
{
  {
    init_simple_test("aBFu0c_BFu9s_Ui");
    static STRUCT_IF_C aBFu0c_BFu9s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_BFu9s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_Ui");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_Ui, aBFu0c_BFu9s_Ui)
//============================================================================



static void Test_aBFu0c_BFu9s_Ul()
{
  {
    init_simple_test("aBFu0c_BFu9s_Ul");
    static STRUCT_IF_C aBFu0c_BFu9s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_BFu9s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_Ul");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_Ul, aBFu0c_BFu9s_Ul)
//============================================================================



static void Test_aBFu0c_BFu9s_Us()
{
  {
    init_simple_test("aBFu0c_BFu9s_Us");
    static STRUCT_IF_C aBFu0c_BFu9s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_BFu9s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_Us");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_Us");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_Us, aBFu0c_BFu9s_Us)
//============================================================================



static void Test_aBFu0c_BFu9s_Vp()
{
  {
    init_simple_test("aBFu0c_BFu9s_Vp");
    static STRUCT_IF_C aBFu0c_BFu9s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_BFu9s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_BFu9s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0c_BFu9s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0c_BFu9s_Vp");
    check_field_offset(lv, v2, 2, "aBFu0c_BFu9s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_BFu9s_Vp, aBFu0c_BFu9s_Vp)
//============================================================================



static void Test_aBFu0c_C()
{
  {
    init_simple_test("aBFu0c_C");
    static STRUCT_IF_C aBFu0c_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C, aBFu0c_C)
//============================================================================



static void Test_aBFu0c_C_BFu0c()
{
  {
    init_simple_test("aBFu0c_C_BFu0c");
    static STRUCT_IF_C aBFu0c_C_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_C_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu0c, aBFu0c_C_BFu0c)
//============================================================================



static void Test_aBFu0c_C_BFu0i()
{
  {
    init_simple_test("aBFu0c_C_BFu0i");
    static STRUCT_IF_C aBFu0c_C_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_C_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu0i, aBFu0c_C_BFu0i)
//============================================================================



static void Test_aBFu0c_C_BFu0ll()
{
  {
    init_simple_test("aBFu0c_C_BFu0ll");
    static STRUCT_IF_C aBFu0c_C_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_C_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu0ll, aBFu0c_C_BFu0ll)
//============================================================================



static void Test_aBFu0c_C_BFu0s()
{
  {
    init_simple_test("aBFu0c_C_BFu0s");
    static STRUCT_IF_C aBFu0c_C_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_C_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu0s, aBFu0c_C_BFu0s)
//============================================================================



static void Test_aBFu0c_C_BFu15i()
{
  {
    init_simple_test("aBFu0c_C_BFu15i");
    static STRUCT_IF_C aBFu0c_C_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu15i.v1");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_C_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_C_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu15i, aBFu0c_C_BFu15i)
//============================================================================



static void Test_aBFu0c_C_BFu15ll()
{
  {
    init_simple_test("aBFu0c_C_BFu15ll");
    static STRUCT_IF_C aBFu0c_C_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu15ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_C_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_C_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu15ll, aBFu0c_C_BFu15ll)
//============================================================================



static void Test_aBFu0c_C_BFu15s()
{
  {
    init_simple_test("aBFu0c_C_BFu15s");
    static STRUCT_IF_C aBFu0c_C_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu15s.v1");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_C_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_C_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu15s, aBFu0c_C_BFu15s)
//============================================================================



static void Test_aBFu0c_C_BFu16i()
{
  {
    init_simple_test("aBFu0c_C_BFu16i");
    static STRUCT_IF_C aBFu0c_C_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu16i.v1");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_C_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_C_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu16i, aBFu0c_C_BFu16i)
//============================================================================



static void Test_aBFu0c_C_BFu16ll()
{
  {
    init_simple_test("aBFu0c_C_BFu16ll");
    static STRUCT_IF_C aBFu0c_C_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu16ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_C_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_C_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu16ll, aBFu0c_C_BFu16ll)
//============================================================================



static void Test_aBFu0c_C_BFu16s()
{
  {
    init_simple_test("aBFu0c_C_BFu16s");
    static STRUCT_IF_C aBFu0c_C_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu16s.v1");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_C_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_C_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu16s, aBFu0c_C_BFu16s)
//============================================================================



static void Test_aBFu0c_C_BFu17i()
{
  {
    init_simple_test("aBFu0c_C_BFu17i");
    static STRUCT_IF_C aBFu0c_C_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_C_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu17i.v1");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_C_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_C_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu17i, aBFu0c_C_BFu17i)
//============================================================================



static void Test_aBFu0c_C_BFu17ll()
{
  {
    init_simple_test("aBFu0c_C_BFu17ll");
    static STRUCT_IF_C aBFu0c_C_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_C_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu17ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_C_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_C_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu17ll, aBFu0c_C_BFu17ll)
//============================================================================



static void Test_aBFu0c_C_BFu1c()
{
  {
    init_simple_test("aBFu0c_C_BFu1c");
    static STRUCT_IF_C aBFu0c_C_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu1c.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_C_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu1c, aBFu0c_C_BFu1c)
//============================================================================



static void Test_aBFu0c_C_BFu1i()
{
  {
    init_simple_test("aBFu0c_C_BFu1i");
    static STRUCT_IF_C aBFu0c_C_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu1i.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_C_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu1i, aBFu0c_C_BFu1i)
//============================================================================



static void Test_aBFu0c_C_BFu1ll()
{
  {
    init_simple_test("aBFu0c_C_BFu1ll");
    static STRUCT_IF_C aBFu0c_C_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu1ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_C_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu1ll, aBFu0c_C_BFu1ll)
//============================================================================



static void Test_aBFu0c_C_BFu1s()
{
  {
    init_simple_test("aBFu0c_C_BFu1s");
    static STRUCT_IF_C aBFu0c_C_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu1s.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_C_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu1s, aBFu0c_C_BFu1s)
//============================================================================



static void Test_aBFu0c_C_BFu31i()
{
  {
    init_simple_test("aBFu0c_C_BFu31i");
    static STRUCT_IF_C aBFu0c_C_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu31i.v1");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_C_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_C_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu31i, aBFu0c_C_BFu31i)
//============================================================================



static void Test_aBFu0c_C_BFu31ll()
{
  {
    init_simple_test("aBFu0c_C_BFu31ll");
    static STRUCT_IF_C aBFu0c_C_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu31ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_C_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_C_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu31ll, aBFu0c_C_BFu31ll)
//============================================================================



static void Test_aBFu0c_C_BFu32i()
{
  {
    init_simple_test("aBFu0c_C_BFu32i");
    static STRUCT_IF_C aBFu0c_C_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu32i.v1");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_C_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_C_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu32i, aBFu0c_C_BFu32i)
//============================================================================



static void Test_aBFu0c_C_BFu32ll()
{
  {
    init_simple_test("aBFu0c_C_BFu32ll");
    static STRUCT_IF_C aBFu0c_C_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu32ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_C_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_C_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu32ll, aBFu0c_C_BFu32ll)
//============================================================================



static void Test_aBFu0c_C_BFu33()
{
  {
    init_simple_test("aBFu0c_C_BFu33");
    static STRUCT_IF_C aBFu0c_C_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_C_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu33.v1");
    set_bf_and_test(lv, v2, 1, 0, 33, 1, "aBFu0c_C_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, hide_ull(1LL<<32), "aBFu0c_C_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu33, aBFu0c_C_BFu33)
//============================================================================



static void Test_aBFu0c_C_BFu7c()
{
  {
    init_simple_test("aBFu0c_C_BFu7c");
    static STRUCT_IF_C aBFu0c_C_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu7c.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_C_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_C_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu7c, aBFu0c_C_BFu7c)
//============================================================================



static void Test_aBFu0c_C_BFu7i()
{
  {
    init_simple_test("aBFu0c_C_BFu7i");
    static STRUCT_IF_C aBFu0c_C_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu7i.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_C_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_C_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu7i, aBFu0c_C_BFu7i)
//============================================================================



static void Test_aBFu0c_C_BFu7ll()
{
  {
    init_simple_test("aBFu0c_C_BFu7ll");
    static STRUCT_IF_C aBFu0c_C_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu7ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_C_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_C_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu7ll, aBFu0c_C_BFu7ll)
//============================================================================



static void Test_aBFu0c_C_BFu7s()
{
  {
    init_simple_test("aBFu0c_C_BFu7s");
    static STRUCT_IF_C aBFu0c_C_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu7s.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_C_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_C_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu7s, aBFu0c_C_BFu7s)
//============================================================================



static void Test_aBFu0c_C_BFu8c()
{
  {
    init_simple_test("aBFu0c_C_BFu8c");
    static STRUCT_IF_C aBFu0c_C_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu8c.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_C_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_C_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu8c, aBFu0c_C_BFu8c)
//============================================================================



static void Test_aBFu0c_C_BFu8i()
{
  {
    init_simple_test("aBFu0c_C_BFu8i");
    static STRUCT_IF_C aBFu0c_C_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu8i.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_C_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_C_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu8i, aBFu0c_C_BFu8i)
//============================================================================



static void Test_aBFu0c_C_BFu8ll()
{
  {
    init_simple_test("aBFu0c_C_BFu8ll");
    static STRUCT_IF_C aBFu0c_C_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu8ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_C_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_C_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu8ll, aBFu0c_C_BFu8ll)
//============================================================================



static void Test_aBFu0c_C_BFu8s()
{
  {
    init_simple_test("aBFu0c_C_BFu8s");
    static STRUCT_IF_C aBFu0c_C_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu8s.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_C_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_C_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu8s, aBFu0c_C_BFu8s)
//============================================================================



static void Test_aBFu0c_C_BFu9i()
{
  {
    init_simple_test("aBFu0c_C_BFu9i");
    static STRUCT_IF_C aBFu0c_C_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu9i.v1");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_C_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_C_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu9i, aBFu0c_C_BFu9i)
//============================================================================



static void Test_aBFu0c_C_BFu9ll()
{
  {
    init_simple_test("aBFu0c_C_BFu9ll");
    static STRUCT_IF_C aBFu0c_C_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu9ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_C_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_C_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu9ll, aBFu0c_C_BFu9ll)
//============================================================================



static void Test_aBFu0c_C_BFu9s()
{
  {
    init_simple_test("aBFu0c_C_BFu9s");
    static STRUCT_IF_C aBFu0c_C_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_BFu9s.v1");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_C_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_C_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_BFu9s, aBFu0c_C_BFu9s)
//============================================================================



static void Test_aBFu0c_C_C()
{
  {
    init_simple_test("aBFu0c_C_C");
    static STRUCT_IF_C aBFu0c_C_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_C.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_C, aBFu0c_C_C)
//============================================================================



static void Test_aBFu0c_C_D()
{
  {
    init_simple_test("aBFu0c_C_D");
    static STRUCT_IF_C aBFu0c_C_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_C_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_D.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_D, aBFu0c_C_D)
//============================================================================



static void Test_aBFu0c_C_F()
{
  {
    init_simple_test("aBFu0c_C_F");
    static STRUCT_IF_C aBFu0c_C_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_F.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_F, aBFu0c_C_F)
//============================================================================



static void Test_aBFu0c_C_I()
{
  {
    init_simple_test("aBFu0c_C_I");
    static STRUCT_IF_C aBFu0c_C_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_I.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_I, aBFu0c_C_I)
//============================================================================



static void Test_aBFu0c_C_Ip()
{
  {
    init_simple_test("aBFu0c_C_Ip");
    static STRUCT_IF_C aBFu0c_C_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_C_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_Ip.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_Ip, aBFu0c_C_Ip)
//============================================================================



static void Test_aBFu0c_C_L()
{
  {
    init_simple_test("aBFu0c_C_L");
    static STRUCT_IF_C aBFu0c_C_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_C_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_L.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_L, aBFu0c_C_L)
//============================================================================



static void Test_aBFu0c_C_S()
{
  {
    init_simple_test("aBFu0c_C_S");
    static STRUCT_IF_C aBFu0c_C_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_S.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_S, aBFu0c_C_S)
//============================================================================



static void Test_aBFu0c_C_Uc()
{
  {
    init_simple_test("aBFu0c_C_Uc");
    static STRUCT_IF_C aBFu0c_C_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_C_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_Uc.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_Uc, aBFu0c_C_Uc)
//============================================================================



static void Test_aBFu0c_C_Ui()
{
  {
    init_simple_test("aBFu0c_C_Ui");
    static STRUCT_IF_C aBFu0c_C_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_C_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_Ui.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_Ui, aBFu0c_C_Ui)
//============================================================================



static void Test_aBFu0c_C_Ul()
{
  {
    init_simple_test("aBFu0c_C_Ul");
    static STRUCT_IF_C aBFu0c_C_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_C_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_Ul.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_Ul, aBFu0c_C_Ul)
//============================================================================



static void Test_aBFu0c_C_Us()
{
  {
    init_simple_test("aBFu0c_C_Us");
    static STRUCT_IF_C aBFu0c_C_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_C_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_Us.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_Us, aBFu0c_C_Us)
//============================================================================



static void Test_aBFu0c_C_Vp()
{
  {
    init_simple_test("aBFu0c_C_Vp");
    static STRUCT_IF_C aBFu0c_C_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_C_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_C_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_C_Vp.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_C_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_C_Vp, aBFu0c_C_Vp)
//============================================================================



static void Test_aBFu0c_D()
{
  {
    init_simple_test("aBFu0c_D");
    static STRUCT_IF_C aBFu0c_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D, aBFu0c_D)
//============================================================================



static void Test_aBFu0c_D_BFu0c()
{
  {
    init_simple_test("aBFu0c_D_BFu0c");
    static STRUCT_IF_C aBFu0c_D_BFu0c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_D_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu0c, aBFu0c_D_BFu0c)
//============================================================================



static void Test_aBFu0c_D_BFu0i()
{
  {
    init_simple_test("aBFu0c_D_BFu0i");
    static STRUCT_IF_C aBFu0c_D_BFu0i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_D_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu0i, aBFu0c_D_BFu0i)
//============================================================================



static void Test_aBFu0c_D_BFu0ll()
{
  {
    init_simple_test("aBFu0c_D_BFu0ll");
    static STRUCT_IF_C aBFu0c_D_BFu0ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_D_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu0ll, aBFu0c_D_BFu0ll)
//============================================================================



static void Test_aBFu0c_D_BFu0s()
{
  {
    init_simple_test("aBFu0c_D_BFu0s");
    static STRUCT_IF_C aBFu0c_D_BFu0s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_D_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu0s, aBFu0c_D_BFu0s)
//============================================================================



static void Test_aBFu0c_D_BFu15i()
{
  {
    init_simple_test("aBFu0c_D_BFu15i");
    static STRUCT_IF_C aBFu0c_D_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu15i.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_D_BFu15i");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_D_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu15i, aBFu0c_D_BFu15i)
//============================================================================



static void Test_aBFu0c_D_BFu15ll()
{
  {
    init_simple_test("aBFu0c_D_BFu15ll");
    static STRUCT_IF_C aBFu0c_D_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu15ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_D_BFu15ll");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_D_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu15ll, aBFu0c_D_BFu15ll)
//============================================================================



static void Test_aBFu0c_D_BFu15s()
{
  {
    init_simple_test("aBFu0c_D_BFu15s");
    static STRUCT_IF_C aBFu0c_D_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu15s.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_D_BFu15s");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_D_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu15s, aBFu0c_D_BFu15s)
//============================================================================



static void Test_aBFu0c_D_BFu16i()
{
  {
    init_simple_test("aBFu0c_D_BFu16i");
    static STRUCT_IF_C aBFu0c_D_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu16i.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_D_BFu16i");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_D_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu16i, aBFu0c_D_BFu16i)
//============================================================================



static void Test_aBFu0c_D_BFu16ll()
{
  {
    init_simple_test("aBFu0c_D_BFu16ll");
    static STRUCT_IF_C aBFu0c_D_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu16ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_D_BFu16ll");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_D_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu16ll, aBFu0c_D_BFu16ll)
//============================================================================



static void Test_aBFu0c_D_BFu16s()
{
  {
    init_simple_test("aBFu0c_D_BFu16s");
    static STRUCT_IF_C aBFu0c_D_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu16s.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_D_BFu16s");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_D_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu16s, aBFu0c_D_BFu16s)
//============================================================================



static void Test_aBFu0c_D_BFu17i()
{
  {
    init_simple_test("aBFu0c_D_BFu17i");
    static STRUCT_IF_C aBFu0c_D_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_D_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu17i.v1");
    set_bf_and_test(lv, v2, 8, 0, 17, 1, "aBFu0c_D_BFu17i");
    set_bf_and_test(lv, v2, 8, 0, 17, hide_ull(1LL<<16), "aBFu0c_D_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu17i, aBFu0c_D_BFu17i)
//============================================================================



static void Test_aBFu0c_D_BFu17ll()
{
  {
    init_simple_test("aBFu0c_D_BFu17ll");
    static STRUCT_IF_C aBFu0c_D_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_D_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu17ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 17, 1, "aBFu0c_D_BFu17ll");
    set_bf_and_test(lv, v2, 8, 0, 17, hide_ull(1LL<<16), "aBFu0c_D_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu17ll, aBFu0c_D_BFu17ll)
//============================================================================



static void Test_aBFu0c_D_BFu1c()
{
  {
    init_simple_test("aBFu0c_D_BFu1c");
    static STRUCT_IF_C aBFu0c_D_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu1c.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_D_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu1c, aBFu0c_D_BFu1c)
//============================================================================



static void Test_aBFu0c_D_BFu1i()
{
  {
    init_simple_test("aBFu0c_D_BFu1i");
    static STRUCT_IF_C aBFu0c_D_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu1i.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_D_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu1i, aBFu0c_D_BFu1i)
//============================================================================



static void Test_aBFu0c_D_BFu1ll()
{
  {
    init_simple_test("aBFu0c_D_BFu1ll");
    static STRUCT_IF_C aBFu0c_D_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu1ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_D_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu1ll, aBFu0c_D_BFu1ll)
//============================================================================



static void Test_aBFu0c_D_BFu1s()
{
  {
    init_simple_test("aBFu0c_D_BFu1s");
    static STRUCT_IF_C aBFu0c_D_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu1s.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_D_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu1s, aBFu0c_D_BFu1s)
//============================================================================



static void Test_aBFu0c_D_BFu31i()
{
  {
    init_simple_test("aBFu0c_D_BFu31i");
    static STRUCT_IF_C aBFu0c_D_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu31i.v1");
    set_bf_and_test(lv, v2, 8, 0, 31, 1, "aBFu0c_D_BFu31i");
    set_bf_and_test(lv, v2, 8, 0, 31, hide_ull(1LL<<30), "aBFu0c_D_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu31i, aBFu0c_D_BFu31i)
//============================================================================



static void Test_aBFu0c_D_BFu31ll()
{
  {
    init_simple_test("aBFu0c_D_BFu31ll");
    static STRUCT_IF_C aBFu0c_D_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu31ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 31, 1, "aBFu0c_D_BFu31ll");
    set_bf_and_test(lv, v2, 8, 0, 31, hide_ull(1LL<<30), "aBFu0c_D_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu31ll, aBFu0c_D_BFu31ll)
//============================================================================



static void Test_aBFu0c_D_BFu32i()
{
  {
    init_simple_test("aBFu0c_D_BFu32i");
    static STRUCT_IF_C aBFu0c_D_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu32i.v1");
    set_bf_and_test(lv, v2, 8, 0, 32, 1, "aBFu0c_D_BFu32i");
    set_bf_and_test(lv, v2, 8, 0, 32, hide_ull(1LL<<31), "aBFu0c_D_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu32i, aBFu0c_D_BFu32i)
//============================================================================



static void Test_aBFu0c_D_BFu32ll()
{
  {
    init_simple_test("aBFu0c_D_BFu32ll");
    static STRUCT_IF_C aBFu0c_D_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu32ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 32, 1, "aBFu0c_D_BFu32ll");
    set_bf_and_test(lv, v2, 8, 0, 32, hide_ull(1LL<<31), "aBFu0c_D_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu32ll, aBFu0c_D_BFu32ll)
//============================================================================



static void Test_aBFu0c_D_BFu33()
{
  {
    init_simple_test("aBFu0c_D_BFu33");
    static STRUCT_IF_C aBFu0c_D_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu0c_D_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu33.v1");
    set_bf_and_test(lv, v2, 8, 0, 33, 1, "aBFu0c_D_BFu33");
    set_bf_and_test(lv, v2, 8, 0, 33, hide_ull(1LL<<32), "aBFu0c_D_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu33, aBFu0c_D_BFu33)
//============================================================================



static void Test_aBFu0c_D_BFu7c()
{
  {
    init_simple_test("aBFu0c_D_BFu7c");
    static STRUCT_IF_C aBFu0c_D_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu7c.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_D_BFu7c");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_D_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu7c, aBFu0c_D_BFu7c)
//============================================================================



static void Test_aBFu0c_D_BFu7i()
{
  {
    init_simple_test("aBFu0c_D_BFu7i");
    static STRUCT_IF_C aBFu0c_D_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu7i.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_D_BFu7i");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_D_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu7i, aBFu0c_D_BFu7i)
//============================================================================



static void Test_aBFu0c_D_BFu7ll()
{
  {
    init_simple_test("aBFu0c_D_BFu7ll");
    static STRUCT_IF_C aBFu0c_D_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu7ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_D_BFu7ll");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_D_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu7ll, aBFu0c_D_BFu7ll)
//============================================================================



static void Test_aBFu0c_D_BFu7s()
{
  {
    init_simple_test("aBFu0c_D_BFu7s");
    static STRUCT_IF_C aBFu0c_D_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu7s.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_D_BFu7s");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_D_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu7s, aBFu0c_D_BFu7s)
//============================================================================



static void Test_aBFu0c_D_BFu8c()
{
  {
    init_simple_test("aBFu0c_D_BFu8c");
    static STRUCT_IF_C aBFu0c_D_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu8c.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_D_BFu8c");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_D_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu8c, aBFu0c_D_BFu8c)
//============================================================================



static void Test_aBFu0c_D_BFu8i()
{
  {
    init_simple_test("aBFu0c_D_BFu8i");
    static STRUCT_IF_C aBFu0c_D_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu8i.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_D_BFu8i");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_D_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu8i, aBFu0c_D_BFu8i)
//============================================================================



static void Test_aBFu0c_D_BFu8ll()
{
  {
    init_simple_test("aBFu0c_D_BFu8ll");
    static STRUCT_IF_C aBFu0c_D_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu8ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_D_BFu8ll");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_D_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu8ll, aBFu0c_D_BFu8ll)
//============================================================================



static void Test_aBFu0c_D_BFu8s()
{
  {
    init_simple_test("aBFu0c_D_BFu8s");
    static STRUCT_IF_C aBFu0c_D_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu8s.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_D_BFu8s");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_D_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu8s, aBFu0c_D_BFu8s)
//============================================================================



static void Test_aBFu0c_D_BFu9i()
{
  {
    init_simple_test("aBFu0c_D_BFu9i");
    static STRUCT_IF_C aBFu0c_D_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu9i.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_D_BFu9i");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_D_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu9i, aBFu0c_D_BFu9i)
//============================================================================



static void Test_aBFu0c_D_BFu9ll()
{
  {
    init_simple_test("aBFu0c_D_BFu9ll");
    static STRUCT_IF_C aBFu0c_D_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu9ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_D_BFu9ll");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_D_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu9ll, aBFu0c_D_BFu9ll)
//============================================================================



static void Test_aBFu0c_D_BFu9s()
{
  {
    init_simple_test("aBFu0c_D_BFu9s");
    static STRUCT_IF_C aBFu0c_D_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_BFu9s.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_D_BFu9s");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_D_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_BFu9s, aBFu0c_D_BFu9s)
//============================================================================



static void Test_aBFu0c_D_C()
{
  {
    init_simple_test("aBFu0c_D_C");
    static STRUCT_IF_C aBFu0c_D_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_C.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_C, aBFu0c_D_C)
//============================================================================



static void Test_aBFu0c_D_D()
{
  {
    init_simple_test("aBFu0c_D_D");
    static STRUCT_IF_C aBFu0c_D_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_D_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_D.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_D, aBFu0c_D_D)
//============================================================================



static void Test_aBFu0c_D_F()
{
  {
    init_simple_test("aBFu0c_D_F");
    static STRUCT_IF_C aBFu0c_D_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_F.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_F, aBFu0c_D_F)
//============================================================================



static void Test_aBFu0c_D_I()
{
  {
    init_simple_test("aBFu0c_D_I");
    static STRUCT_IF_C aBFu0c_D_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_I.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_I, aBFu0c_D_I)
//============================================================================



static void Test_aBFu0c_D_Ip()
{
  {
    init_simple_test("aBFu0c_D_Ip");
    static STRUCT_IF_C aBFu0c_D_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_D_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_Ip.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_Ip, aBFu0c_D_Ip)
//============================================================================



static void Test_aBFu0c_D_L()
{
  {
    init_simple_test("aBFu0c_D_L");
    static STRUCT_IF_C aBFu0c_D_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_D_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_L.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_L, aBFu0c_D_L)
//============================================================================



static void Test_aBFu0c_D_S()
{
  {
    init_simple_test("aBFu0c_D_S");
    static STRUCT_IF_C aBFu0c_D_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_S.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_S, aBFu0c_D_S)
//============================================================================



static void Test_aBFu0c_D_Uc()
{
  {
    init_simple_test("aBFu0c_D_Uc");
    static STRUCT_IF_C aBFu0c_D_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_D_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_Uc.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_Uc, aBFu0c_D_Uc)
//============================================================================



static void Test_aBFu0c_D_Ui()
{
  {
    init_simple_test("aBFu0c_D_Ui");
    static STRUCT_IF_C aBFu0c_D_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_D_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_Ui.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_Ui, aBFu0c_D_Ui)
//============================================================================



static void Test_aBFu0c_D_Ul()
{
  {
    init_simple_test("aBFu0c_D_Ul");
    static STRUCT_IF_C aBFu0c_D_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_D_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_Ul.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_Ul, aBFu0c_D_Ul)
//============================================================================



static void Test_aBFu0c_D_Us()
{
  {
    init_simple_test("aBFu0c_D_Us");
    static STRUCT_IF_C aBFu0c_D_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_D_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_Us.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_Us, aBFu0c_D_Us)
//============================================================================



static void Test_aBFu0c_D_Vp()
{
  {
    init_simple_test("aBFu0c_D_Vp");
    static STRUCT_IF_C aBFu0c_D_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_D_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_D_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_D_Vp.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_D_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_D_Vp, aBFu0c_D_Vp)
//============================================================================



static void Test_aBFu0c_F()
{
  {
    init_simple_test("aBFu0c_F");
    static STRUCT_IF_C aBFu0c_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F, aBFu0c_F)
//============================================================================



static void Test_aBFu0c_F_BFu0c()
{
  {
    init_simple_test("aBFu0c_F_BFu0c");
    static STRUCT_IF_C aBFu0c_F_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_F_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu0c, aBFu0c_F_BFu0c)
//============================================================================



static void Test_aBFu0c_F_BFu0i()
{
  {
    init_simple_test("aBFu0c_F_BFu0i");
    static STRUCT_IF_C aBFu0c_F_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_F_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu0i, aBFu0c_F_BFu0i)
//============================================================================



static void Test_aBFu0c_F_BFu0ll()
{
  {
    init_simple_test("aBFu0c_F_BFu0ll");
    static STRUCT_IF_C aBFu0c_F_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_F_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu0ll, aBFu0c_F_BFu0ll)
//============================================================================



static void Test_aBFu0c_F_BFu0s()
{
  {
    init_simple_test("aBFu0c_F_BFu0s");
    static STRUCT_IF_C aBFu0c_F_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_F_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu0s, aBFu0c_F_BFu0s)
//============================================================================



static void Test_aBFu0c_F_BFu15i()
{
  {
    init_simple_test("aBFu0c_F_BFu15i");
    static STRUCT_IF_C aBFu0c_F_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu15i.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_F_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_F_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu15i, aBFu0c_F_BFu15i)
//============================================================================



static void Test_aBFu0c_F_BFu15ll()
{
  {
    init_simple_test("aBFu0c_F_BFu15ll");
    static STRUCT_IF_C aBFu0c_F_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu15ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_F_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_F_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu15ll, aBFu0c_F_BFu15ll)
//============================================================================



static void Test_aBFu0c_F_BFu15s()
{
  {
    init_simple_test("aBFu0c_F_BFu15s");
    static STRUCT_IF_C aBFu0c_F_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu15s.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_F_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_F_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu15s, aBFu0c_F_BFu15s)
//============================================================================



static void Test_aBFu0c_F_BFu16i()
{
  {
    init_simple_test("aBFu0c_F_BFu16i");
    static STRUCT_IF_C aBFu0c_F_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu16i.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_F_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_F_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu16i, aBFu0c_F_BFu16i)
//============================================================================



static void Test_aBFu0c_F_BFu16ll()
{
  {
    init_simple_test("aBFu0c_F_BFu16ll");
    static STRUCT_IF_C aBFu0c_F_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu16ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_F_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_F_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu16ll, aBFu0c_F_BFu16ll)
//============================================================================



static void Test_aBFu0c_F_BFu16s()
{
  {
    init_simple_test("aBFu0c_F_BFu16s");
    static STRUCT_IF_C aBFu0c_F_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu16s.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_F_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_F_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu16s, aBFu0c_F_BFu16s)
//============================================================================



static void Test_aBFu0c_F_BFu17i()
{
  {
    init_simple_test("aBFu0c_F_BFu17i");
    static STRUCT_IF_C aBFu0c_F_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_F_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu17i.v1");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_F_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_F_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu17i, aBFu0c_F_BFu17i)
//============================================================================



static void Test_aBFu0c_F_BFu17ll()
{
  {
    init_simple_test("aBFu0c_F_BFu17ll");
    static STRUCT_IF_C aBFu0c_F_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_F_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu17ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_F_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_F_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu17ll, aBFu0c_F_BFu17ll)
//============================================================================



static void Test_aBFu0c_F_BFu1c()
{
  {
    init_simple_test("aBFu0c_F_BFu1c");
    static STRUCT_IF_C aBFu0c_F_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu1c.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_F_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu1c, aBFu0c_F_BFu1c)
//============================================================================



static void Test_aBFu0c_F_BFu1i()
{
  {
    init_simple_test("aBFu0c_F_BFu1i");
    static STRUCT_IF_C aBFu0c_F_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu1i.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_F_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu1i, aBFu0c_F_BFu1i)
//============================================================================



static void Test_aBFu0c_F_BFu1ll()
{
  {
    init_simple_test("aBFu0c_F_BFu1ll");
    static STRUCT_IF_C aBFu0c_F_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu1ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_F_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu1ll, aBFu0c_F_BFu1ll)
//============================================================================



static void Test_aBFu0c_F_BFu1s()
{
  {
    init_simple_test("aBFu0c_F_BFu1s");
    static STRUCT_IF_C aBFu0c_F_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu1s.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_F_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu1s, aBFu0c_F_BFu1s)
//============================================================================



static void Test_aBFu0c_F_BFu31i()
{
  {
    init_simple_test("aBFu0c_F_BFu31i");
    static STRUCT_IF_C aBFu0c_F_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu31i.v1");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_F_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_F_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu31i, aBFu0c_F_BFu31i)
//============================================================================



static void Test_aBFu0c_F_BFu31ll()
{
  {
    init_simple_test("aBFu0c_F_BFu31ll");
    static STRUCT_IF_C aBFu0c_F_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu31ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_F_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_F_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu31ll, aBFu0c_F_BFu31ll)
//============================================================================



static void Test_aBFu0c_F_BFu32i()
{
  {
    init_simple_test("aBFu0c_F_BFu32i");
    static STRUCT_IF_C aBFu0c_F_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu32i.v1");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_F_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_F_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu32i, aBFu0c_F_BFu32i)
//============================================================================



static void Test_aBFu0c_F_BFu32ll()
{
  {
    init_simple_test("aBFu0c_F_BFu32ll");
    static STRUCT_IF_C aBFu0c_F_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu32ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_F_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_F_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu32ll, aBFu0c_F_BFu32ll)
//============================================================================



static void Test_aBFu0c_F_BFu33()
{
  {
    init_simple_test("aBFu0c_F_BFu33");
    static STRUCT_IF_C aBFu0c_F_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_F_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu33.v1");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu0c_F_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu0c_F_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu33, aBFu0c_F_BFu33)
//============================================================================



static void Test_aBFu0c_F_BFu7c()
{
  {
    init_simple_test("aBFu0c_F_BFu7c");
    static STRUCT_IF_C aBFu0c_F_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu7c.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_F_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_F_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu7c, aBFu0c_F_BFu7c)
//============================================================================



static void Test_aBFu0c_F_BFu7i()
{
  {
    init_simple_test("aBFu0c_F_BFu7i");
    static STRUCT_IF_C aBFu0c_F_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu7i.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_F_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_F_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu7i, aBFu0c_F_BFu7i)
//============================================================================



static void Test_aBFu0c_F_BFu7ll()
{
  {
    init_simple_test("aBFu0c_F_BFu7ll");
    static STRUCT_IF_C aBFu0c_F_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu7ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_F_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_F_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu7ll, aBFu0c_F_BFu7ll)
//============================================================================



static void Test_aBFu0c_F_BFu7s()
{
  {
    init_simple_test("aBFu0c_F_BFu7s");
    static STRUCT_IF_C aBFu0c_F_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu7s.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_F_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_F_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu7s, aBFu0c_F_BFu7s)
//============================================================================



static void Test_aBFu0c_F_BFu8c()
{
  {
    init_simple_test("aBFu0c_F_BFu8c");
    static STRUCT_IF_C aBFu0c_F_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu8c.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_F_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_F_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu8c, aBFu0c_F_BFu8c)
//============================================================================



static void Test_aBFu0c_F_BFu8i()
{
  {
    init_simple_test("aBFu0c_F_BFu8i");
    static STRUCT_IF_C aBFu0c_F_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu8i.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_F_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_F_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu8i, aBFu0c_F_BFu8i)
//============================================================================



static void Test_aBFu0c_F_BFu8ll()
{
  {
    init_simple_test("aBFu0c_F_BFu8ll");
    static STRUCT_IF_C aBFu0c_F_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu8ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_F_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_F_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu8ll, aBFu0c_F_BFu8ll)
//============================================================================



static void Test_aBFu0c_F_BFu8s()
{
  {
    init_simple_test("aBFu0c_F_BFu8s");
    static STRUCT_IF_C aBFu0c_F_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu8s.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_F_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_F_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu8s, aBFu0c_F_BFu8s)
//============================================================================



static void Test_aBFu0c_F_BFu9i()
{
  {
    init_simple_test("aBFu0c_F_BFu9i");
    static STRUCT_IF_C aBFu0c_F_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu9i.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_F_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_F_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu9i, aBFu0c_F_BFu9i)
//============================================================================



static void Test_aBFu0c_F_BFu9ll()
{
  {
    init_simple_test("aBFu0c_F_BFu9ll");
    static STRUCT_IF_C aBFu0c_F_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu9ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_F_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_F_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu9ll, aBFu0c_F_BFu9ll)
//============================================================================



static void Test_aBFu0c_F_BFu9s()
{
  {
    init_simple_test("aBFu0c_F_BFu9s");
    static STRUCT_IF_C aBFu0c_F_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_BFu9s.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_F_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_F_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_BFu9s, aBFu0c_F_BFu9s)
//============================================================================



static void Test_aBFu0c_F_C()
{
  {
    init_simple_test("aBFu0c_F_C");
    static STRUCT_IF_C aBFu0c_F_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_C.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_C, aBFu0c_F_C)
//============================================================================



static void Test_aBFu0c_F_D()
{
  {
    init_simple_test("aBFu0c_F_D");
    static STRUCT_IF_C aBFu0c_F_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_F_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_D.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_D, aBFu0c_F_D)
//============================================================================



static void Test_aBFu0c_F_F()
{
  {
    init_simple_test("aBFu0c_F_F");
    static STRUCT_IF_C aBFu0c_F_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_F.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_F, aBFu0c_F_F)
//============================================================================



static void Test_aBFu0c_F_I()
{
  {
    init_simple_test("aBFu0c_F_I");
    static STRUCT_IF_C aBFu0c_F_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_I.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_I, aBFu0c_F_I)
//============================================================================



static void Test_aBFu0c_F_Ip()
{
  {
    init_simple_test("aBFu0c_F_Ip");
    static STRUCT_IF_C aBFu0c_F_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_F_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_Ip.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_Ip, aBFu0c_F_Ip)
//============================================================================



static void Test_aBFu0c_F_L()
{
  {
    init_simple_test("aBFu0c_F_L");
    static STRUCT_IF_C aBFu0c_F_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_F_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_L.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_L, aBFu0c_F_L)
//============================================================================



static void Test_aBFu0c_F_S()
{
  {
    init_simple_test("aBFu0c_F_S");
    static STRUCT_IF_C aBFu0c_F_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_S.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_S, aBFu0c_F_S)
//============================================================================



static void Test_aBFu0c_F_Uc()
{
  {
    init_simple_test("aBFu0c_F_Uc");
    static STRUCT_IF_C aBFu0c_F_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_F_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_Uc.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_Uc, aBFu0c_F_Uc)
//============================================================================



static void Test_aBFu0c_F_Ui()
{
  {
    init_simple_test("aBFu0c_F_Ui");
    static STRUCT_IF_C aBFu0c_F_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_F_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_Ui.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_Ui, aBFu0c_F_Ui)
//============================================================================



static void Test_aBFu0c_F_Ul()
{
  {
    init_simple_test("aBFu0c_F_Ul");
    static STRUCT_IF_C aBFu0c_F_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_F_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_Ul.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_Ul, aBFu0c_F_Ul)
//============================================================================



static void Test_aBFu0c_F_Us()
{
  {
    init_simple_test("aBFu0c_F_Us");
    static STRUCT_IF_C aBFu0c_F_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_F_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_Us.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_Us, aBFu0c_F_Us)
//============================================================================



static void Test_aBFu0c_F_Vp()
{
  {
    init_simple_test("aBFu0c_F_Vp");
    static STRUCT_IF_C aBFu0c_F_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_F_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_F_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_F_Vp.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_F_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_F_Vp, aBFu0c_F_Vp)
//============================================================================



static void Test_aBFu0c_I()
{
  {
    init_simple_test("aBFu0c_I");
    static STRUCT_IF_C aBFu0c_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I, aBFu0c_I)
//============================================================================



static void Test_aBFu0c_I_BFu0c()
{
  {
    init_simple_test("aBFu0c_I_BFu0c");
    static STRUCT_IF_C aBFu0c_I_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_I_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu0c, aBFu0c_I_BFu0c)
//============================================================================



static void Test_aBFu0c_I_BFu0i()
{
  {
    init_simple_test("aBFu0c_I_BFu0i");
    static STRUCT_IF_C aBFu0c_I_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_I_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu0i, aBFu0c_I_BFu0i)
//============================================================================



static void Test_aBFu0c_I_BFu0ll()
{
  {
    init_simple_test("aBFu0c_I_BFu0ll");
    static STRUCT_IF_C aBFu0c_I_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_I_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu0ll, aBFu0c_I_BFu0ll)
//============================================================================



static void Test_aBFu0c_I_BFu0s()
{
  {
    init_simple_test("aBFu0c_I_BFu0s");
    static STRUCT_IF_C aBFu0c_I_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_I_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu0s, aBFu0c_I_BFu0s)
//============================================================================



static void Test_aBFu0c_I_BFu15i()
{
  {
    init_simple_test("aBFu0c_I_BFu15i");
    static STRUCT_IF_C aBFu0c_I_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu15i.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_I_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_I_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu15i, aBFu0c_I_BFu15i)
//============================================================================



static void Test_aBFu0c_I_BFu15ll()
{
  {
    init_simple_test("aBFu0c_I_BFu15ll");
    static STRUCT_IF_C aBFu0c_I_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu15ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_I_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_I_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu15ll, aBFu0c_I_BFu15ll)
//============================================================================



static void Test_aBFu0c_I_BFu15s()
{
  {
    init_simple_test("aBFu0c_I_BFu15s");
    static STRUCT_IF_C aBFu0c_I_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu15s.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_I_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_I_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu15s, aBFu0c_I_BFu15s)
//============================================================================



static void Test_aBFu0c_I_BFu16i()
{
  {
    init_simple_test("aBFu0c_I_BFu16i");
    static STRUCT_IF_C aBFu0c_I_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu16i.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_I_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_I_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu16i, aBFu0c_I_BFu16i)
//============================================================================



static void Test_aBFu0c_I_BFu16ll()
{
  {
    init_simple_test("aBFu0c_I_BFu16ll");
    static STRUCT_IF_C aBFu0c_I_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu16ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_I_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_I_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu16ll, aBFu0c_I_BFu16ll)
//============================================================================



static void Test_aBFu0c_I_BFu16s()
{
  {
    init_simple_test("aBFu0c_I_BFu16s");
    static STRUCT_IF_C aBFu0c_I_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu16s.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_I_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_I_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu16s, aBFu0c_I_BFu16s)
//============================================================================



static void Test_aBFu0c_I_BFu17i()
{
  {
    init_simple_test("aBFu0c_I_BFu17i");
    static STRUCT_IF_C aBFu0c_I_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_I_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu17i.v1");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_I_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_I_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu17i, aBFu0c_I_BFu17i)
//============================================================================



static void Test_aBFu0c_I_BFu17ll()
{
  {
    init_simple_test("aBFu0c_I_BFu17ll");
    static STRUCT_IF_C aBFu0c_I_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_I_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu17ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_I_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_I_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu17ll, aBFu0c_I_BFu17ll)
//============================================================================



static void Test_aBFu0c_I_BFu1c()
{
  {
    init_simple_test("aBFu0c_I_BFu1c");
    static STRUCT_IF_C aBFu0c_I_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu1c.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_I_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu1c, aBFu0c_I_BFu1c)
//============================================================================



static void Test_aBFu0c_I_BFu1i()
{
  {
    init_simple_test("aBFu0c_I_BFu1i");
    static STRUCT_IF_C aBFu0c_I_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu1i.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_I_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu1i, aBFu0c_I_BFu1i)
//============================================================================



static void Test_aBFu0c_I_BFu1ll()
{
  {
    init_simple_test("aBFu0c_I_BFu1ll");
    static STRUCT_IF_C aBFu0c_I_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu1ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_I_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu1ll, aBFu0c_I_BFu1ll)
//============================================================================



static void Test_aBFu0c_I_BFu1s()
{
  {
    init_simple_test("aBFu0c_I_BFu1s");
    static STRUCT_IF_C aBFu0c_I_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu1s.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_I_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu1s, aBFu0c_I_BFu1s)
//============================================================================



static void Test_aBFu0c_I_BFu31i()
{
  {
    init_simple_test("aBFu0c_I_BFu31i");
    static STRUCT_IF_C aBFu0c_I_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu31i.v1");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_I_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_I_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu31i, aBFu0c_I_BFu31i)
//============================================================================



static void Test_aBFu0c_I_BFu31ll()
{
  {
    init_simple_test("aBFu0c_I_BFu31ll");
    static STRUCT_IF_C aBFu0c_I_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu31ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_I_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_I_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu31ll, aBFu0c_I_BFu31ll)
//============================================================================



static void Test_aBFu0c_I_BFu32i()
{
  {
    init_simple_test("aBFu0c_I_BFu32i");
    static STRUCT_IF_C aBFu0c_I_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu32i.v1");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_I_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_I_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu32i, aBFu0c_I_BFu32i)
//============================================================================



static void Test_aBFu0c_I_BFu32ll()
{
  {
    init_simple_test("aBFu0c_I_BFu32ll");
    static STRUCT_IF_C aBFu0c_I_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu32ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_I_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_I_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu32ll, aBFu0c_I_BFu32ll)
//============================================================================



static void Test_aBFu0c_I_BFu33()
{
  {
    init_simple_test("aBFu0c_I_BFu33");
    static STRUCT_IF_C aBFu0c_I_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_I_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu33.v1");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu0c_I_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu0c_I_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu33, aBFu0c_I_BFu33)
//============================================================================



static void Test_aBFu0c_I_BFu7c()
{
  {
    init_simple_test("aBFu0c_I_BFu7c");
    static STRUCT_IF_C aBFu0c_I_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu7c.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_I_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_I_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu7c, aBFu0c_I_BFu7c)
//============================================================================



static void Test_aBFu0c_I_BFu7i()
{
  {
    init_simple_test("aBFu0c_I_BFu7i");
    static STRUCT_IF_C aBFu0c_I_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu7i.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_I_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_I_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu7i, aBFu0c_I_BFu7i)
//============================================================================



static void Test_aBFu0c_I_BFu7ll()
{
  {
    init_simple_test("aBFu0c_I_BFu7ll");
    static STRUCT_IF_C aBFu0c_I_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu7ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_I_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_I_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu7ll, aBFu0c_I_BFu7ll)
//============================================================================



static void Test_aBFu0c_I_BFu7s()
{
  {
    init_simple_test("aBFu0c_I_BFu7s");
    static STRUCT_IF_C aBFu0c_I_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu7s.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_I_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_I_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu7s, aBFu0c_I_BFu7s)
//============================================================================



static void Test_aBFu0c_I_BFu8c()
{
  {
    init_simple_test("aBFu0c_I_BFu8c");
    static STRUCT_IF_C aBFu0c_I_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu8c.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_I_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_I_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu8c, aBFu0c_I_BFu8c)
//============================================================================



static void Test_aBFu0c_I_BFu8i()
{
  {
    init_simple_test("aBFu0c_I_BFu8i");
    static STRUCT_IF_C aBFu0c_I_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu8i.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_I_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_I_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu8i, aBFu0c_I_BFu8i)
//============================================================================



static void Test_aBFu0c_I_BFu8ll()
{
  {
    init_simple_test("aBFu0c_I_BFu8ll");
    static STRUCT_IF_C aBFu0c_I_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu8ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_I_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_I_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu8ll, aBFu0c_I_BFu8ll)
//============================================================================



static void Test_aBFu0c_I_BFu8s()
{
  {
    init_simple_test("aBFu0c_I_BFu8s");
    static STRUCT_IF_C aBFu0c_I_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu8s.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_I_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_I_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu8s, aBFu0c_I_BFu8s)
//============================================================================



static void Test_aBFu0c_I_BFu9i()
{
  {
    init_simple_test("aBFu0c_I_BFu9i");
    static STRUCT_IF_C aBFu0c_I_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu9i.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_I_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_I_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu9i, aBFu0c_I_BFu9i)
//============================================================================



static void Test_aBFu0c_I_BFu9ll()
{
  {
    init_simple_test("aBFu0c_I_BFu9ll");
    static STRUCT_IF_C aBFu0c_I_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu9ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_I_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_I_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu9ll, aBFu0c_I_BFu9ll)
//============================================================================



static void Test_aBFu0c_I_BFu9s()
{
  {
    init_simple_test("aBFu0c_I_BFu9s");
    static STRUCT_IF_C aBFu0c_I_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_BFu9s.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_I_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_I_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_BFu9s, aBFu0c_I_BFu9s)
//============================================================================



static void Test_aBFu0c_I_C()
{
  {
    init_simple_test("aBFu0c_I_C");
    static STRUCT_IF_C aBFu0c_I_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_C.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_C, aBFu0c_I_C)
//============================================================================



static void Test_aBFu0c_I_D()
{
  {
    init_simple_test("aBFu0c_I_D");
    static STRUCT_IF_C aBFu0c_I_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_I_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_D.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_D, aBFu0c_I_D)
//============================================================================



static void Test_aBFu0c_I_F()
{
  {
    init_simple_test("aBFu0c_I_F");
    static STRUCT_IF_C aBFu0c_I_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_F.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_F, aBFu0c_I_F)
//============================================================================



static void Test_aBFu0c_I_I()
{
  {
    init_simple_test("aBFu0c_I_I");
    static STRUCT_IF_C aBFu0c_I_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_I.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_I, aBFu0c_I_I)
//============================================================================



static void Test_aBFu0c_I_Ip()
{
  {
    init_simple_test("aBFu0c_I_Ip");
    static STRUCT_IF_C aBFu0c_I_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_I_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_Ip.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_Ip, aBFu0c_I_Ip)
//============================================================================



static void Test_aBFu0c_I_L()
{
  {
    init_simple_test("aBFu0c_I_L");
    static STRUCT_IF_C aBFu0c_I_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_I_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_L.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_L, aBFu0c_I_L)
//============================================================================



static void Test_aBFu0c_I_S()
{
  {
    init_simple_test("aBFu0c_I_S");
    static STRUCT_IF_C aBFu0c_I_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_S.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_S, aBFu0c_I_S)
//============================================================================



static void Test_aBFu0c_I_Uc()
{
  {
    init_simple_test("aBFu0c_I_Uc");
    static STRUCT_IF_C aBFu0c_I_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_I_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_Uc.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_Uc, aBFu0c_I_Uc)
//============================================================================



static void Test_aBFu0c_I_Ui()
{
  {
    init_simple_test("aBFu0c_I_Ui");
    static STRUCT_IF_C aBFu0c_I_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_I_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_Ui.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_Ui, aBFu0c_I_Ui)
//============================================================================



static void Test_aBFu0c_I_Ul()
{
  {
    init_simple_test("aBFu0c_I_Ul");
    static STRUCT_IF_C aBFu0c_I_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_I_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_Ul.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_Ul, aBFu0c_I_Ul)
//============================================================================



static void Test_aBFu0c_I_Us()
{
  {
    init_simple_test("aBFu0c_I_Us");
    static STRUCT_IF_C aBFu0c_I_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_I_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_Us.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_Us, aBFu0c_I_Us)
//============================================================================



static void Test_aBFu0c_I_Vp()
{
  {
    init_simple_test("aBFu0c_I_Vp");
    static STRUCT_IF_C aBFu0c_I_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_I_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_I_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_I_Vp.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_I_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_I_Vp, aBFu0c_I_Vp)
//============================================================================



static void Test_aBFu0c_Ip()
{
  {
    init_simple_test("aBFu0c_Ip");
    static STRUCT_IF_C aBFu0c_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip, aBFu0c_Ip)
//============================================================================



static void Test_aBFu0c_Ip_BFu0c()
{
  {
    init_simple_test("aBFu0c_Ip_BFu0c");
    static STRUCT_IF_C aBFu0c_Ip_BFu0c lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Ip_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu0c, aBFu0c_Ip_BFu0c)
//============================================================================



static void Test_aBFu0c_Ip_BFu0i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu0i");
    static STRUCT_IF_C aBFu0c_Ip_BFu0i lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Ip_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu0i, aBFu0c_Ip_BFu0i)
//============================================================================



static void Test_aBFu0c_Ip_BFu0ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu0ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Ip_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu0ll, aBFu0c_Ip_BFu0ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu0s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu0s");
    static STRUCT_IF_C aBFu0c_Ip_BFu0s lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Ip_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu0s, aBFu0c_Ip_BFu0s)
//============================================================================



static void Test_aBFu0c_Ip_BFu15i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu15i");
    static STRUCT_IF_C aBFu0c_Ip_BFu15i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu15i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, 1, "aBFu0c_Ip_BFu15i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, hide_ull(1LL<<14), "aBFu0c_Ip_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu15i, aBFu0c_Ip_BFu15i)
//============================================================================



static void Test_aBFu0c_Ip_BFu15ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu15ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu15ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, 1, "aBFu0c_Ip_BFu15ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, hide_ull(1LL<<14), "aBFu0c_Ip_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu15ll, aBFu0c_Ip_BFu15ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu15s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu15s");
    static STRUCT_IF_C aBFu0c_Ip_BFu15s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu15s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, 1, "aBFu0c_Ip_BFu15s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, hide_ull(1LL<<14), "aBFu0c_Ip_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu15s, aBFu0c_Ip_BFu15s)
//============================================================================



static void Test_aBFu0c_Ip_BFu16i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu16i");
    static STRUCT_IF_C aBFu0c_Ip_BFu16i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu16i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, 1, "aBFu0c_Ip_BFu16i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, hide_ull(1LL<<15), "aBFu0c_Ip_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu16i, aBFu0c_Ip_BFu16i)
//============================================================================



static void Test_aBFu0c_Ip_BFu16ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu16ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu16ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, 1, "aBFu0c_Ip_BFu16ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, hide_ull(1LL<<15), "aBFu0c_Ip_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu16ll, aBFu0c_Ip_BFu16ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu16s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu16s");
    static STRUCT_IF_C aBFu0c_Ip_BFu16s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu16s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, 1, "aBFu0c_Ip_BFu16s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, hide_ull(1LL<<15), "aBFu0c_Ip_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu16s, aBFu0c_Ip_BFu16s)
//============================================================================



static void Test_aBFu0c_Ip_BFu17i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu17i");
    static STRUCT_IF_C aBFu0c_Ip_BFu17i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_Ip_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu17i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, 1, "aBFu0c_Ip_BFu17i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, hide_ull(1LL<<16), "aBFu0c_Ip_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu17i, aBFu0c_Ip_BFu17i)
//============================================================================



static void Test_aBFu0c_Ip_BFu17ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu17ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_Ip_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu17ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, 1, "aBFu0c_Ip_BFu17ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, hide_ull(1LL<<16), "aBFu0c_Ip_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu17ll, aBFu0c_Ip_BFu17ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu1c()
{
  {
    init_simple_test("aBFu0c_Ip_BFu1c");
    static STRUCT_IF_C aBFu0c_Ip_BFu1c lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu1c.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Ip_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu1c, aBFu0c_Ip_BFu1c)
//============================================================================



static void Test_aBFu0c_Ip_BFu1i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu1i");
    static STRUCT_IF_C aBFu0c_Ip_BFu1i lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu1i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Ip_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu1i, aBFu0c_Ip_BFu1i)
//============================================================================



static void Test_aBFu0c_Ip_BFu1ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu1ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu1ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Ip_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu1ll, aBFu0c_Ip_BFu1ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu1s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu1s");
    static STRUCT_IF_C aBFu0c_Ip_BFu1s lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu1s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Ip_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu1s, aBFu0c_Ip_BFu1s)
//============================================================================



static void Test_aBFu0c_Ip_BFu31i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu31i");
    static STRUCT_IF_C aBFu0c_Ip_BFu31i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu31i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, 1, "aBFu0c_Ip_BFu31i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, hide_ull(1LL<<30), "aBFu0c_Ip_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu31i, aBFu0c_Ip_BFu31i)
//============================================================================



static void Test_aBFu0c_Ip_BFu31ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu31ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu31ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, 1, "aBFu0c_Ip_BFu31ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, hide_ull(1LL<<30), "aBFu0c_Ip_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu31ll, aBFu0c_Ip_BFu31ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu32i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu32i");
    static STRUCT_IF_C aBFu0c_Ip_BFu32i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu32i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, 1, "aBFu0c_Ip_BFu32i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, hide_ull(1LL<<31), "aBFu0c_Ip_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu32i, aBFu0c_Ip_BFu32i)
//============================================================================



static void Test_aBFu0c_Ip_BFu32ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu32ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu32ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, 1, "aBFu0c_Ip_BFu32ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, hide_ull(1LL<<31), "aBFu0c_Ip_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu32ll, aBFu0c_Ip_BFu32ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu33()
{
  {
    init_simple_test("aBFu0c_Ip_BFu33");
    static STRUCT_IF_C aBFu0c_Ip_BFu33 lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu0c_Ip_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu33.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 33, 1, "aBFu0c_Ip_BFu33");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 33, hide_ull(1LL<<32), "aBFu0c_Ip_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu33, aBFu0c_Ip_BFu33)
//============================================================================



static void Test_aBFu0c_Ip_BFu7c()
{
  {
    init_simple_test("aBFu0c_Ip_BFu7c");
    static STRUCT_IF_C aBFu0c_Ip_BFu7c lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu7c.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Ip_BFu7c");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Ip_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu7c, aBFu0c_Ip_BFu7c)
//============================================================================



static void Test_aBFu0c_Ip_BFu7i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu7i");
    static STRUCT_IF_C aBFu0c_Ip_BFu7i lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu7i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Ip_BFu7i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Ip_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu7i, aBFu0c_Ip_BFu7i)
//============================================================================



static void Test_aBFu0c_Ip_BFu7ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu7ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu7ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Ip_BFu7ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Ip_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu7ll, aBFu0c_Ip_BFu7ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu7s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu7s");
    static STRUCT_IF_C aBFu0c_Ip_BFu7s lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu7s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Ip_BFu7s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Ip_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu7s, aBFu0c_Ip_BFu7s)
//============================================================================



static void Test_aBFu0c_Ip_BFu8c()
{
  {
    init_simple_test("aBFu0c_Ip_BFu8c");
    static STRUCT_IF_C aBFu0c_Ip_BFu8c lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu8c.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Ip_BFu8c");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Ip_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu8c, aBFu0c_Ip_BFu8c)
//============================================================================



static void Test_aBFu0c_Ip_BFu8i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu8i");
    static STRUCT_IF_C aBFu0c_Ip_BFu8i lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu8i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Ip_BFu8i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Ip_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu8i, aBFu0c_Ip_BFu8i)
//============================================================================



static void Test_aBFu0c_Ip_BFu8ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu8ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu8ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Ip_BFu8ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Ip_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu8ll, aBFu0c_Ip_BFu8ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu8s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu8s");
    static STRUCT_IF_C aBFu0c_Ip_BFu8s lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu8s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Ip_BFu8s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Ip_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu8s, aBFu0c_Ip_BFu8s)
//============================================================================



static void Test_aBFu0c_Ip_BFu9i()
{
  {
    init_simple_test("aBFu0c_Ip_BFu9i");
    static STRUCT_IF_C aBFu0c_Ip_BFu9i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu9i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, 1, "aBFu0c_Ip_BFu9i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, hide_ull(1LL<<8), "aBFu0c_Ip_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu9i, aBFu0c_Ip_BFu9i)
//============================================================================



static void Test_aBFu0c_Ip_BFu9ll()
{
  {
    init_simple_test("aBFu0c_Ip_BFu9ll");
    static STRUCT_IF_C aBFu0c_Ip_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu9ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, 1, "aBFu0c_Ip_BFu9ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, hide_ull(1LL<<8), "aBFu0c_Ip_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu9ll, aBFu0c_Ip_BFu9ll)
//============================================================================



static void Test_aBFu0c_Ip_BFu9s()
{
  {
    init_simple_test("aBFu0c_Ip_BFu9s");
    static STRUCT_IF_C aBFu0c_Ip_BFu9s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_BFu9s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, 1, "aBFu0c_Ip_BFu9s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, hide_ull(1LL<<8), "aBFu0c_Ip_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_BFu9s, aBFu0c_Ip_BFu9s)
//============================================================================



static void Test_aBFu0c_Ip_C()
{
  {
    init_simple_test("aBFu0c_Ip_C");
    static STRUCT_IF_C aBFu0c_Ip_C lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_C.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_C, aBFu0c_Ip_C)
//============================================================================



static void Test_aBFu0c_Ip_D()
{
  {
    init_simple_test("aBFu0c_Ip_D");
    static STRUCT_IF_C aBFu0c_Ip_D lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Ip_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_D.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_D, aBFu0c_Ip_D)
//============================================================================



static void Test_aBFu0c_Ip_F()
{
  {
    init_simple_test("aBFu0c_Ip_F");
    static STRUCT_IF_C aBFu0c_Ip_F lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_F.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_F, aBFu0c_Ip_F)
//============================================================================



static void Test_aBFu0c_Ip_I()
{
  {
    init_simple_test("aBFu0c_Ip_I");
    static STRUCT_IF_C aBFu0c_Ip_I lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_I.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_I, aBFu0c_Ip_I)
//============================================================================



static void Test_aBFu0c_Ip_Ip()
{
  {
    init_simple_test("aBFu0c_Ip_Ip");
    static STRUCT_IF_C aBFu0c_Ip_Ip lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(aBFu0c_Ip_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_Ip.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_Ip, aBFu0c_Ip_Ip)
//============================================================================



static void Test_aBFu0c_Ip_L()
{
  {
    init_simple_test("aBFu0c_Ip_L");
    static STRUCT_IF_C aBFu0c_Ip_L lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Ip_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_L.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_L, aBFu0c_Ip_L)
//============================================================================



static void Test_aBFu0c_Ip_S()
{
  {
    init_simple_test("aBFu0c_Ip_S");
    static STRUCT_IF_C aBFu0c_Ip_S lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_S.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_S, aBFu0c_Ip_S)
//============================================================================



static void Test_aBFu0c_Ip_Uc()
{
  {
    init_simple_test("aBFu0c_Ip_Uc");
    static STRUCT_IF_C aBFu0c_Ip_Uc lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Ip_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_Uc.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_Uc, aBFu0c_Ip_Uc)
//============================================================================



static void Test_aBFu0c_Ip_Ui()
{
  {
    init_simple_test("aBFu0c_Ip_Ui");
    static STRUCT_IF_C aBFu0c_Ip_Ui lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ip_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_Ui.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_Ui, aBFu0c_Ip_Ui)
//============================================================================



static void Test_aBFu0c_Ip_Ul()
{
  {
    init_simple_test("aBFu0c_Ip_Ul");
    static STRUCT_IF_C aBFu0c_Ip_Ul lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Ip_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_Ul.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_Ul, aBFu0c_Ip_Ul)
//============================================================================



static void Test_aBFu0c_Ip_Us()
{
  {
    init_simple_test("aBFu0c_Ip_Us");
    static STRUCT_IF_C aBFu0c_Ip_Us lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Ip_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_Us.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_Us, aBFu0c_Ip_Us)
//============================================================================



static void Test_aBFu0c_Ip_Vp()
{
  {
    init_simple_test("aBFu0c_Ip_Vp");
    static STRUCT_IF_C aBFu0c_Ip_Vp lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(aBFu0c_Ip_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ip_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ip_Vp.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Ip_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ip_Vp, aBFu0c_Ip_Vp)
//============================================================================



static void Test_aBFu0c_L()
{
  {
    init_simple_test("aBFu0c_L");
    static STRUCT_IF_C aBFu0c_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L, aBFu0c_L)
//============================================================================



static void Test_aBFu0c_L_BFu0c()
{
  {
    init_simple_test("aBFu0c_L_BFu0c");
    static STRUCT_IF_C aBFu0c_L_BFu0c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_L_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu0c, aBFu0c_L_BFu0c)
//============================================================================



static void Test_aBFu0c_L_BFu0i()
{
  {
    init_simple_test("aBFu0c_L_BFu0i");
    static STRUCT_IF_C aBFu0c_L_BFu0i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_L_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu0i, aBFu0c_L_BFu0i)
//============================================================================



static void Test_aBFu0c_L_BFu0ll()
{
  {
    init_simple_test("aBFu0c_L_BFu0ll");
    static STRUCT_IF_C aBFu0c_L_BFu0ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_L_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu0ll, aBFu0c_L_BFu0ll)
//============================================================================



static void Test_aBFu0c_L_BFu0s()
{
  {
    init_simple_test("aBFu0c_L_BFu0s");
    static STRUCT_IF_C aBFu0c_L_BFu0s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_L_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu0s, aBFu0c_L_BFu0s)
//============================================================================



static void Test_aBFu0c_L_BFu15i()
{
  {
    init_simple_test("aBFu0c_L_BFu15i");
    static STRUCT_IF_C aBFu0c_L_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu15i.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_L_BFu15i");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_L_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu15i, aBFu0c_L_BFu15i)
//============================================================================



static void Test_aBFu0c_L_BFu15ll()
{
  {
    init_simple_test("aBFu0c_L_BFu15ll");
    static STRUCT_IF_C aBFu0c_L_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu15ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_L_BFu15ll");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_L_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu15ll, aBFu0c_L_BFu15ll)
//============================================================================



static void Test_aBFu0c_L_BFu15s()
{
  {
    init_simple_test("aBFu0c_L_BFu15s");
    static STRUCT_IF_C aBFu0c_L_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu15s.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_L_BFu15s");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_L_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu15s, aBFu0c_L_BFu15s)
//============================================================================



static void Test_aBFu0c_L_BFu16i()
{
  {
    init_simple_test("aBFu0c_L_BFu16i");
    static STRUCT_IF_C aBFu0c_L_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu16i.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_L_BFu16i");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_L_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu16i, aBFu0c_L_BFu16i)
//============================================================================



static void Test_aBFu0c_L_BFu16ll()
{
  {
    init_simple_test("aBFu0c_L_BFu16ll");
    static STRUCT_IF_C aBFu0c_L_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu16ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_L_BFu16ll");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_L_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu16ll, aBFu0c_L_BFu16ll)
//============================================================================



static void Test_aBFu0c_L_BFu16s()
{
  {
    init_simple_test("aBFu0c_L_BFu16s");
    static STRUCT_IF_C aBFu0c_L_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu16s.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_L_BFu16s");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_L_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu16s, aBFu0c_L_BFu16s)
//============================================================================



static void Test_aBFu0c_L_BFu17i()
{
  {
    init_simple_test("aBFu0c_L_BFu17i");
    static STRUCT_IF_C aBFu0c_L_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_L_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu17i.v1");
    set_bf_and_test(lv, v2, 8, 0, 17, 1, "aBFu0c_L_BFu17i");
    set_bf_and_test(lv, v2, 8, 0, 17, hide_ull(1LL<<16), "aBFu0c_L_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu17i, aBFu0c_L_BFu17i)
//============================================================================



static void Test_aBFu0c_L_BFu17ll()
{
  {
    init_simple_test("aBFu0c_L_BFu17ll");
    static STRUCT_IF_C aBFu0c_L_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_L_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu17ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 17, 1, "aBFu0c_L_BFu17ll");
    set_bf_and_test(lv, v2, 8, 0, 17, hide_ull(1LL<<16), "aBFu0c_L_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu17ll, aBFu0c_L_BFu17ll)
//============================================================================



static void Test_aBFu0c_L_BFu1c()
{
  {
    init_simple_test("aBFu0c_L_BFu1c");
    static STRUCT_IF_C aBFu0c_L_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu1c.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_L_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu1c, aBFu0c_L_BFu1c)
//============================================================================



static void Test_aBFu0c_L_BFu1i()
{
  {
    init_simple_test("aBFu0c_L_BFu1i");
    static STRUCT_IF_C aBFu0c_L_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu1i.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_L_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu1i, aBFu0c_L_BFu1i)
//============================================================================



static void Test_aBFu0c_L_BFu1ll()
{
  {
    init_simple_test("aBFu0c_L_BFu1ll");
    static STRUCT_IF_C aBFu0c_L_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu1ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_L_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu1ll, aBFu0c_L_BFu1ll)
//============================================================================



static void Test_aBFu0c_L_BFu1s()
{
  {
    init_simple_test("aBFu0c_L_BFu1s");
    static STRUCT_IF_C aBFu0c_L_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu1s.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_L_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu1s, aBFu0c_L_BFu1s)
//============================================================================



static void Test_aBFu0c_L_BFu31i()
{
  {
    init_simple_test("aBFu0c_L_BFu31i");
    static STRUCT_IF_C aBFu0c_L_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu31i.v1");
    set_bf_and_test(lv, v2, 8, 0, 31, 1, "aBFu0c_L_BFu31i");
    set_bf_and_test(lv, v2, 8, 0, 31, hide_ull(1LL<<30), "aBFu0c_L_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu31i, aBFu0c_L_BFu31i)
//============================================================================



static void Test_aBFu0c_L_BFu31ll()
{
  {
    init_simple_test("aBFu0c_L_BFu31ll");
    static STRUCT_IF_C aBFu0c_L_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu31ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 31, 1, "aBFu0c_L_BFu31ll");
    set_bf_and_test(lv, v2, 8, 0, 31, hide_ull(1LL<<30), "aBFu0c_L_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu31ll, aBFu0c_L_BFu31ll)
//============================================================================



static void Test_aBFu0c_L_BFu32i()
{
  {
    init_simple_test("aBFu0c_L_BFu32i");
    static STRUCT_IF_C aBFu0c_L_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu32i.v1");
    set_bf_and_test(lv, v2, 8, 0, 32, 1, "aBFu0c_L_BFu32i");
    set_bf_and_test(lv, v2, 8, 0, 32, hide_ull(1LL<<31), "aBFu0c_L_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu32i, aBFu0c_L_BFu32i)
//============================================================================



static void Test_aBFu0c_L_BFu32ll()
{
  {
    init_simple_test("aBFu0c_L_BFu32ll");
    static STRUCT_IF_C aBFu0c_L_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu32ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 32, 1, "aBFu0c_L_BFu32ll");
    set_bf_and_test(lv, v2, 8, 0, 32, hide_ull(1LL<<31), "aBFu0c_L_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu32ll, aBFu0c_L_BFu32ll)
//============================================================================



static void Test_aBFu0c_L_BFu33()
{
  {
    init_simple_test("aBFu0c_L_BFu33");
    static STRUCT_IF_C aBFu0c_L_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu0c_L_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu33.v1");
    set_bf_and_test(lv, v2, 8, 0, 33, 1, "aBFu0c_L_BFu33");
    set_bf_and_test(lv, v2, 8, 0, 33, hide_ull(1LL<<32), "aBFu0c_L_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu33, aBFu0c_L_BFu33)
//============================================================================



static void Test_aBFu0c_L_BFu7c()
{
  {
    init_simple_test("aBFu0c_L_BFu7c");
    static STRUCT_IF_C aBFu0c_L_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu7c.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_L_BFu7c");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_L_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu7c, aBFu0c_L_BFu7c)
//============================================================================



static void Test_aBFu0c_L_BFu7i()
{
  {
    init_simple_test("aBFu0c_L_BFu7i");
    static STRUCT_IF_C aBFu0c_L_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu7i.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_L_BFu7i");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_L_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu7i, aBFu0c_L_BFu7i)
//============================================================================



static void Test_aBFu0c_L_BFu7ll()
{
  {
    init_simple_test("aBFu0c_L_BFu7ll");
    static STRUCT_IF_C aBFu0c_L_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu7ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_L_BFu7ll");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_L_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu7ll, aBFu0c_L_BFu7ll)
//============================================================================



static void Test_aBFu0c_L_BFu7s()
{
  {
    init_simple_test("aBFu0c_L_BFu7s");
    static STRUCT_IF_C aBFu0c_L_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu7s.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_L_BFu7s");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_L_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu7s, aBFu0c_L_BFu7s)
//============================================================================



static void Test_aBFu0c_L_BFu8c()
{
  {
    init_simple_test("aBFu0c_L_BFu8c");
    static STRUCT_IF_C aBFu0c_L_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu8c.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_L_BFu8c");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_L_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu8c, aBFu0c_L_BFu8c)
//============================================================================



static void Test_aBFu0c_L_BFu8i()
{
  {
    init_simple_test("aBFu0c_L_BFu8i");
    static STRUCT_IF_C aBFu0c_L_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu8i.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_L_BFu8i");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_L_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu8i, aBFu0c_L_BFu8i)
//============================================================================



static void Test_aBFu0c_L_BFu8ll()
{
  {
    init_simple_test("aBFu0c_L_BFu8ll");
    static STRUCT_IF_C aBFu0c_L_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu8ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_L_BFu8ll");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_L_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu8ll, aBFu0c_L_BFu8ll)
//============================================================================



static void Test_aBFu0c_L_BFu8s()
{
  {
    init_simple_test("aBFu0c_L_BFu8s");
    static STRUCT_IF_C aBFu0c_L_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu8s.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_L_BFu8s");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_L_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu8s, aBFu0c_L_BFu8s)
//============================================================================



static void Test_aBFu0c_L_BFu9i()
{
  {
    init_simple_test("aBFu0c_L_BFu9i");
    static STRUCT_IF_C aBFu0c_L_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu9i.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_L_BFu9i");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_L_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu9i, aBFu0c_L_BFu9i)
//============================================================================



static void Test_aBFu0c_L_BFu9ll()
{
  {
    init_simple_test("aBFu0c_L_BFu9ll");
    static STRUCT_IF_C aBFu0c_L_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu9ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_L_BFu9ll");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_L_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu9ll, aBFu0c_L_BFu9ll)
//============================================================================



static void Test_aBFu0c_L_BFu9s()
{
  {
    init_simple_test("aBFu0c_L_BFu9s");
    static STRUCT_IF_C aBFu0c_L_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_BFu9s.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_L_BFu9s");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_L_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_BFu9s, aBFu0c_L_BFu9s)
//============================================================================



static void Test_aBFu0c_L_C()
{
  {
    init_simple_test("aBFu0c_L_C");
    static STRUCT_IF_C aBFu0c_L_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_C.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_C, aBFu0c_L_C)
//============================================================================



static void Test_aBFu0c_L_D()
{
  {
    init_simple_test("aBFu0c_L_D");
    static STRUCT_IF_C aBFu0c_L_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_L_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_D.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_D, aBFu0c_L_D)
//============================================================================



static void Test_aBFu0c_L_F()
{
  {
    init_simple_test("aBFu0c_L_F");
    static STRUCT_IF_C aBFu0c_L_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_F.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_F, aBFu0c_L_F)
//============================================================================



static void Test_aBFu0c_L_I()
{
  {
    init_simple_test("aBFu0c_L_I");
    static STRUCT_IF_C aBFu0c_L_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_I.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_I, aBFu0c_L_I)
//============================================================================



static void Test_aBFu0c_L_Ip()
{
  {
    init_simple_test("aBFu0c_L_Ip");
    static STRUCT_IF_C aBFu0c_L_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_L_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_Ip.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_Ip, aBFu0c_L_Ip)
//============================================================================



static void Test_aBFu0c_L_L()
{
  {
    init_simple_test("aBFu0c_L_L");
    static STRUCT_IF_C aBFu0c_L_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_L_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_L.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_L, aBFu0c_L_L)
//============================================================================



static void Test_aBFu0c_L_S()
{
  {
    init_simple_test("aBFu0c_L_S");
    static STRUCT_IF_C aBFu0c_L_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_S.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_S, aBFu0c_L_S)
//============================================================================



static void Test_aBFu0c_L_Uc()
{
  {
    init_simple_test("aBFu0c_L_Uc");
    static STRUCT_IF_C aBFu0c_L_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_L_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_Uc.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_Uc, aBFu0c_L_Uc)
//============================================================================



static void Test_aBFu0c_L_Ui()
{
  {
    init_simple_test("aBFu0c_L_Ui");
    static STRUCT_IF_C aBFu0c_L_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_L_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_Ui.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_Ui, aBFu0c_L_Ui)
//============================================================================



static void Test_aBFu0c_L_Ul()
{
  {
    init_simple_test("aBFu0c_L_Ul");
    static STRUCT_IF_C aBFu0c_L_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_L_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_Ul.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_Ul, aBFu0c_L_Ul)
//============================================================================



static void Test_aBFu0c_L_Us()
{
  {
    init_simple_test("aBFu0c_L_Us");
    static STRUCT_IF_C aBFu0c_L_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_L_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_Us.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_Us, aBFu0c_L_Us)
//============================================================================



static void Test_aBFu0c_L_Vp()
{
  {
    init_simple_test("aBFu0c_L_Vp");
    static STRUCT_IF_C aBFu0c_L_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_L_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_L_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_L_Vp.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_L_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_L_Vp, aBFu0c_L_Vp)
//============================================================================



static void Test_aBFu0c_S()
{
  {
    init_simple_test("aBFu0c_S");
    static STRUCT_IF_C aBFu0c_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S, aBFu0c_S)
//============================================================================



static void Test_aBFu0c_S_BFu0c()
{
  {
    init_simple_test("aBFu0c_S_BFu0c");
    static STRUCT_IF_C aBFu0c_S_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_S_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu0c, aBFu0c_S_BFu0c)
//============================================================================



static void Test_aBFu0c_S_BFu0i()
{
  {
    init_simple_test("aBFu0c_S_BFu0i");
    static STRUCT_IF_C aBFu0c_S_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_S_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu0i, aBFu0c_S_BFu0i)
//============================================================================



static void Test_aBFu0c_S_BFu0ll()
{
  {
    init_simple_test("aBFu0c_S_BFu0ll");
    static STRUCT_IF_C aBFu0c_S_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_S_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu0ll, aBFu0c_S_BFu0ll)
//============================================================================



static void Test_aBFu0c_S_BFu0s()
{
  {
    init_simple_test("aBFu0c_S_BFu0s");
    static STRUCT_IF_C aBFu0c_S_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_S_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu0s, aBFu0c_S_BFu0s)
//============================================================================



static void Test_aBFu0c_S_BFu15i()
{
  {
    init_simple_test("aBFu0c_S_BFu15i");
    static STRUCT_IF_C aBFu0c_S_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu15i.v1");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_S_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_S_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu15i, aBFu0c_S_BFu15i)
//============================================================================



static void Test_aBFu0c_S_BFu15ll()
{
  {
    init_simple_test("aBFu0c_S_BFu15ll");
    static STRUCT_IF_C aBFu0c_S_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu15ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_S_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_S_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu15ll, aBFu0c_S_BFu15ll)
//============================================================================



static void Test_aBFu0c_S_BFu15s()
{
  {
    init_simple_test("aBFu0c_S_BFu15s");
    static STRUCT_IF_C aBFu0c_S_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu15s.v1");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_S_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_S_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu15s, aBFu0c_S_BFu15s)
//============================================================================



static void Test_aBFu0c_S_BFu16i()
{
  {
    init_simple_test("aBFu0c_S_BFu16i");
    static STRUCT_IF_C aBFu0c_S_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu16i.v1");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_S_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_S_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu16i, aBFu0c_S_BFu16i)
//============================================================================



static void Test_aBFu0c_S_BFu16ll()
{
  {
    init_simple_test("aBFu0c_S_BFu16ll");
    static STRUCT_IF_C aBFu0c_S_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu16ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_S_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_S_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu16ll, aBFu0c_S_BFu16ll)
//============================================================================



static void Test_aBFu0c_S_BFu16s()
{
  {
    init_simple_test("aBFu0c_S_BFu16s");
    static STRUCT_IF_C aBFu0c_S_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu16s.v1");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_S_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_S_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu16s, aBFu0c_S_BFu16s)
//============================================================================



static void Test_aBFu0c_S_BFu17i()
{
  {
    init_simple_test("aBFu0c_S_BFu17i");
    static STRUCT_IF_C aBFu0c_S_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_S_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu17i.v1");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_S_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_S_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu17i, aBFu0c_S_BFu17i)
//============================================================================



static void Test_aBFu0c_S_BFu17ll()
{
  {
    init_simple_test("aBFu0c_S_BFu17ll");
    static STRUCT_IF_C aBFu0c_S_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_S_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu17ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_S_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_S_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu17ll, aBFu0c_S_BFu17ll)
//============================================================================



static void Test_aBFu0c_S_BFu1c()
{
  {
    init_simple_test("aBFu0c_S_BFu1c");
    static STRUCT_IF_C aBFu0c_S_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu1c.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_S_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu1c, aBFu0c_S_BFu1c)
//============================================================================



static void Test_aBFu0c_S_BFu1i()
{
  {
    init_simple_test("aBFu0c_S_BFu1i");
    static STRUCT_IF_C aBFu0c_S_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu1i.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_S_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu1i, aBFu0c_S_BFu1i)
//============================================================================



static void Test_aBFu0c_S_BFu1ll()
{
  {
    init_simple_test("aBFu0c_S_BFu1ll");
    static STRUCT_IF_C aBFu0c_S_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu1ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_S_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu1ll, aBFu0c_S_BFu1ll)
//============================================================================



static void Test_aBFu0c_S_BFu1s()
{
  {
    init_simple_test("aBFu0c_S_BFu1s");
    static STRUCT_IF_C aBFu0c_S_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu1s.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_S_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu1s, aBFu0c_S_BFu1s)
//============================================================================



static void Test_aBFu0c_S_BFu31i()
{
  {
    init_simple_test("aBFu0c_S_BFu31i");
    static STRUCT_IF_C aBFu0c_S_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu31i.v1");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_S_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_S_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu31i, aBFu0c_S_BFu31i)
//============================================================================



static void Test_aBFu0c_S_BFu31ll()
{
  {
    init_simple_test("aBFu0c_S_BFu31ll");
    static STRUCT_IF_C aBFu0c_S_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu31ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_S_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_S_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu31ll, aBFu0c_S_BFu31ll)
//============================================================================



static void Test_aBFu0c_S_BFu32i()
{
  {
    init_simple_test("aBFu0c_S_BFu32i");
    static STRUCT_IF_C aBFu0c_S_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu32i.v1");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_S_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_S_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu32i, aBFu0c_S_BFu32i)
//============================================================================



static void Test_aBFu0c_S_BFu32ll()
{
  {
    init_simple_test("aBFu0c_S_BFu32ll");
    static STRUCT_IF_C aBFu0c_S_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu32ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_S_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_S_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu32ll, aBFu0c_S_BFu32ll)
//============================================================================



static void Test_aBFu0c_S_BFu33()
{
  {
    init_simple_test("aBFu0c_S_BFu33");
    static STRUCT_IF_C aBFu0c_S_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_S_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu33.v1");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0c_S_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0c_S_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu33, aBFu0c_S_BFu33)
//============================================================================



static void Test_aBFu0c_S_BFu7c()
{
  {
    init_simple_test("aBFu0c_S_BFu7c");
    static STRUCT_IF_C aBFu0c_S_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu7c.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_S_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_S_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu7c, aBFu0c_S_BFu7c)
//============================================================================



static void Test_aBFu0c_S_BFu7i()
{
  {
    init_simple_test("aBFu0c_S_BFu7i");
    static STRUCT_IF_C aBFu0c_S_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu7i.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_S_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_S_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu7i, aBFu0c_S_BFu7i)
//============================================================================



static void Test_aBFu0c_S_BFu7ll()
{
  {
    init_simple_test("aBFu0c_S_BFu7ll");
    static STRUCT_IF_C aBFu0c_S_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu7ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_S_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_S_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu7ll, aBFu0c_S_BFu7ll)
//============================================================================



static void Test_aBFu0c_S_BFu7s()
{
  {
    init_simple_test("aBFu0c_S_BFu7s");
    static STRUCT_IF_C aBFu0c_S_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu7s.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_S_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_S_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu7s, aBFu0c_S_BFu7s)
//============================================================================



static void Test_aBFu0c_S_BFu8c()
{
  {
    init_simple_test("aBFu0c_S_BFu8c");
    static STRUCT_IF_C aBFu0c_S_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu8c.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_S_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_S_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu8c, aBFu0c_S_BFu8c)
//============================================================================



static void Test_aBFu0c_S_BFu8i()
{
  {
    init_simple_test("aBFu0c_S_BFu8i");
    static STRUCT_IF_C aBFu0c_S_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu8i.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_S_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_S_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu8i, aBFu0c_S_BFu8i)
//============================================================================



static void Test_aBFu0c_S_BFu8ll()
{
  {
    init_simple_test("aBFu0c_S_BFu8ll");
    static STRUCT_IF_C aBFu0c_S_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu8ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_S_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_S_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu8ll, aBFu0c_S_BFu8ll)
//============================================================================



static void Test_aBFu0c_S_BFu8s()
{
  {
    init_simple_test("aBFu0c_S_BFu8s");
    static STRUCT_IF_C aBFu0c_S_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu8s.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_S_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_S_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu8s, aBFu0c_S_BFu8s)
//============================================================================



static void Test_aBFu0c_S_BFu9i()
{
  {
    init_simple_test("aBFu0c_S_BFu9i");
    static STRUCT_IF_C aBFu0c_S_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu9i.v1");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_S_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_S_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu9i, aBFu0c_S_BFu9i)
//============================================================================



static void Test_aBFu0c_S_BFu9ll()
{
  {
    init_simple_test("aBFu0c_S_BFu9ll");
    static STRUCT_IF_C aBFu0c_S_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu9ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_S_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_S_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu9ll, aBFu0c_S_BFu9ll)
//============================================================================



static void Test_aBFu0c_S_BFu9s()
{
  {
    init_simple_test("aBFu0c_S_BFu9s");
    static STRUCT_IF_C aBFu0c_S_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_BFu9s.v1");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_S_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_S_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_BFu9s, aBFu0c_S_BFu9s)
//============================================================================



static void Test_aBFu0c_S_C()
{
  {
    init_simple_test("aBFu0c_S_C");
    static STRUCT_IF_C aBFu0c_S_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_C.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_C, aBFu0c_S_C)
//============================================================================



static void Test_aBFu0c_S_D()
{
  {
    init_simple_test("aBFu0c_S_D");
    static STRUCT_IF_C aBFu0c_S_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_S_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_D.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_D, aBFu0c_S_D)
//============================================================================



static void Test_aBFu0c_S_F()
{
  {
    init_simple_test("aBFu0c_S_F");
    static STRUCT_IF_C aBFu0c_S_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_F.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_F, aBFu0c_S_F)
//============================================================================



static void Test_aBFu0c_S_I()
{
  {
    init_simple_test("aBFu0c_S_I");
    static STRUCT_IF_C aBFu0c_S_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_I.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_I, aBFu0c_S_I)
//============================================================================



static void Test_aBFu0c_S_Ip()
{
  {
    init_simple_test("aBFu0c_S_Ip");
    static STRUCT_IF_C aBFu0c_S_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_S_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_Ip.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_Ip, aBFu0c_S_Ip)
//============================================================================



static void Test_aBFu0c_S_L()
{
  {
    init_simple_test("aBFu0c_S_L");
    static STRUCT_IF_C aBFu0c_S_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_S_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_L.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_L, aBFu0c_S_L)
//============================================================================



static void Test_aBFu0c_S_S()
{
  {
    init_simple_test("aBFu0c_S_S");
    static STRUCT_IF_C aBFu0c_S_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_S.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_S, aBFu0c_S_S)
//============================================================================



static void Test_aBFu0c_S_Uc()
{
  {
    init_simple_test("aBFu0c_S_Uc");
    static STRUCT_IF_C aBFu0c_S_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_S_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_Uc.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_Uc, aBFu0c_S_Uc)
//============================================================================



static void Test_aBFu0c_S_Ui()
{
  {
    init_simple_test("aBFu0c_S_Ui");
    static STRUCT_IF_C aBFu0c_S_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_S_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_Ui.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_Ui, aBFu0c_S_Ui)
//============================================================================



static void Test_aBFu0c_S_Ul()
{
  {
    init_simple_test("aBFu0c_S_Ul");
    static STRUCT_IF_C aBFu0c_S_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_S_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_Ul.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_Ul, aBFu0c_S_Ul)
//============================================================================



static void Test_aBFu0c_S_Us()
{
  {
    init_simple_test("aBFu0c_S_Us");
    static STRUCT_IF_C aBFu0c_S_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_S_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_Us.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_Us, aBFu0c_S_Us)
//============================================================================



static void Test_aBFu0c_S_Vp()
{
  {
    init_simple_test("aBFu0c_S_Vp");
    static STRUCT_IF_C aBFu0c_S_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_S_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_S_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_S_Vp.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_S_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_S_Vp, aBFu0c_S_Vp)
//============================================================================



static void Test_aBFu0c_Uc()
{
  {
    init_simple_test("aBFu0c_Uc");
    static STRUCT_IF_C aBFu0c_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc, aBFu0c_Uc)
//============================================================================



static void Test_aBFu0c_Uc_BFu0c()
{
  {
    init_simple_test("aBFu0c_Uc_BFu0c");
    static STRUCT_IF_C aBFu0c_Uc_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0c_Uc_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu0c, aBFu0c_Uc_BFu0c)
//============================================================================



static void Test_aBFu0c_Uc_BFu0i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu0i");
    static STRUCT_IF_C aBFu0c_Uc_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_Uc_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu0i, aBFu0c_Uc_BFu0i)
//============================================================================



static void Test_aBFu0c_Uc_BFu0ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu0ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Uc_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu0ll, aBFu0c_Uc_BFu0ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu0s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu0s");
    static STRUCT_IF_C aBFu0c_Uc_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0c_Uc_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu0s, aBFu0c_Uc_BFu0s)
//============================================================================



static void Test_aBFu0c_Uc_BFu15i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu15i");
    static STRUCT_IF_C aBFu0c_Uc_BFu15i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu15i.v1");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_Uc_BFu15i");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_Uc_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu15i, aBFu0c_Uc_BFu15i)
//============================================================================



static void Test_aBFu0c_Uc_BFu15ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu15ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu15ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu15ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_Uc_BFu15ll");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_Uc_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu15ll, aBFu0c_Uc_BFu15ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu15s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu15s");
    static STRUCT_IF_C aBFu0c_Uc_BFu15s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu15s.v1");
    set_bf_and_test(lv, v2, 1, 0, 15, 1, "aBFu0c_Uc_BFu15s");
    set_bf_and_test(lv, v2, 1, 0, 15, hide_ull(1LL<<14), "aBFu0c_Uc_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu15s, aBFu0c_Uc_BFu15s)
//============================================================================



static void Test_aBFu0c_Uc_BFu16i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu16i");
    static STRUCT_IF_C aBFu0c_Uc_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu16i.v1");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_Uc_BFu16i");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_Uc_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu16i, aBFu0c_Uc_BFu16i)
//============================================================================



static void Test_aBFu0c_Uc_BFu16ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu16ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu16ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_Uc_BFu16ll");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_Uc_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu16ll, aBFu0c_Uc_BFu16ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu16s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu16s");
    static STRUCT_IF_C aBFu0c_Uc_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu16s.v1");
    set_bf_and_test(lv, v2, 1, 0, 16, 1, "aBFu0c_Uc_BFu16s");
    set_bf_and_test(lv, v2, 1, 0, 16, hide_ull(1LL<<15), "aBFu0c_Uc_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu16s, aBFu0c_Uc_BFu16s)
//============================================================================



static void Test_aBFu0c_Uc_BFu17i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu17i");
    static STRUCT_IF_C aBFu0c_Uc_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Uc_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu17i.v1");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_Uc_BFu17i");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_Uc_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu17i, aBFu0c_Uc_BFu17i)
//============================================================================



static void Test_aBFu0c_Uc_BFu17ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu17ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Uc_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu17ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 17, 1, "aBFu0c_Uc_BFu17ll");
    set_bf_and_test(lv, v2, 1, 0, 17, hide_ull(1LL<<16), "aBFu0c_Uc_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu17ll, aBFu0c_Uc_BFu17ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu1c()
{
  {
    init_simple_test("aBFu0c_Uc_BFu1c");
    static STRUCT_IF_C aBFu0c_Uc_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu1c.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_Uc_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu1c, aBFu0c_Uc_BFu1c)
//============================================================================



static void Test_aBFu0c_Uc_BFu1i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu1i");
    static STRUCT_IF_C aBFu0c_Uc_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu1i.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_Uc_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu1i, aBFu0c_Uc_BFu1i)
//============================================================================



static void Test_aBFu0c_Uc_BFu1ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu1ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu1ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_Uc_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu1ll, aBFu0c_Uc_BFu1ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu1s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu1s");
    static STRUCT_IF_C aBFu0c_Uc_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu1s.v1");
    set_bf_and_test(lv, v2, 1, 0, 1, 1, "aBFu0c_Uc_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu1s, aBFu0c_Uc_BFu1s)
//============================================================================



static void Test_aBFu0c_Uc_BFu31i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu31i");
    static STRUCT_IF_C aBFu0c_Uc_BFu31i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu31i.v1");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_Uc_BFu31i");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_Uc_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu31i, aBFu0c_Uc_BFu31i)
//============================================================================



static void Test_aBFu0c_Uc_BFu31ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu31ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu31ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu31ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 31, 1, "aBFu0c_Uc_BFu31ll");
    set_bf_and_test(lv, v2, 1, 0, 31, hide_ull(1LL<<30), "aBFu0c_Uc_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu31ll, aBFu0c_Uc_BFu31ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu32i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu32i");
    static STRUCT_IF_C aBFu0c_Uc_BFu32i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu32i.v1");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_Uc_BFu32i");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_Uc_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu32i, aBFu0c_Uc_BFu32i)
//============================================================================



static void Test_aBFu0c_Uc_BFu32ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu32ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu32ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu32ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 32, 1, "aBFu0c_Uc_BFu32ll");
    set_bf_and_test(lv, v2, 1, 0, 32, hide_ull(1LL<<31), "aBFu0c_Uc_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu32ll, aBFu0c_Uc_BFu32ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu33()
{
  {
    init_simple_test("aBFu0c_Uc_BFu33");
    static STRUCT_IF_C aBFu0c_Uc_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Uc_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu33.v1");
    set_bf_and_test(lv, v2, 1, 0, 33, 1, "aBFu0c_Uc_BFu33");
    set_bf_and_test(lv, v2, 1, 0, 33, hide_ull(1LL<<32), "aBFu0c_Uc_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu33, aBFu0c_Uc_BFu33)
//============================================================================



static void Test_aBFu0c_Uc_BFu7c()
{
  {
    init_simple_test("aBFu0c_Uc_BFu7c");
    static STRUCT_IF_C aBFu0c_Uc_BFu7c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu7c.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_Uc_BFu7c");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_Uc_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu7c, aBFu0c_Uc_BFu7c)
//============================================================================



static void Test_aBFu0c_Uc_BFu7i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu7i");
    static STRUCT_IF_C aBFu0c_Uc_BFu7i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu7i.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_Uc_BFu7i");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_Uc_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu7i, aBFu0c_Uc_BFu7i)
//============================================================================



static void Test_aBFu0c_Uc_BFu7ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu7ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu7ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu7ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_Uc_BFu7ll");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_Uc_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu7ll, aBFu0c_Uc_BFu7ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu7s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu7s");
    static STRUCT_IF_C aBFu0c_Uc_BFu7s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu7s.v1");
    set_bf_and_test(lv, v2, 1, 0, 7, 1, "aBFu0c_Uc_BFu7s");
    set_bf_and_test(lv, v2, 1, 0, 7, hide_ull(1LL<<6), "aBFu0c_Uc_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu7s, aBFu0c_Uc_BFu7s)
//============================================================================



static void Test_aBFu0c_Uc_BFu8c()
{
  {
    init_simple_test("aBFu0c_Uc_BFu8c");
    static STRUCT_IF_C aBFu0c_Uc_BFu8c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu8c.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_Uc_BFu8c");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_Uc_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu8c, aBFu0c_Uc_BFu8c)
//============================================================================



static void Test_aBFu0c_Uc_BFu8i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu8i");
    static STRUCT_IF_C aBFu0c_Uc_BFu8i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu8i.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_Uc_BFu8i");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_Uc_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu8i, aBFu0c_Uc_BFu8i)
//============================================================================



static void Test_aBFu0c_Uc_BFu8ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu8ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu8ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu8ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_Uc_BFu8ll");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_Uc_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu8ll, aBFu0c_Uc_BFu8ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu8s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu8s");
    static STRUCT_IF_C aBFu0c_Uc_BFu8s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu8s.v1");
    set_bf_and_test(lv, v2, 1, 0, 8, 1, "aBFu0c_Uc_BFu8s");
    set_bf_and_test(lv, v2, 1, 0, 8, hide_ull(1LL<<7), "aBFu0c_Uc_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu8s, aBFu0c_Uc_BFu8s)
//============================================================================



static void Test_aBFu0c_Uc_BFu9i()
{
  {
    init_simple_test("aBFu0c_Uc_BFu9i");
    static STRUCT_IF_C aBFu0c_Uc_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu9i.v1");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_Uc_BFu9i");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_Uc_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu9i, aBFu0c_Uc_BFu9i)
//============================================================================



static void Test_aBFu0c_Uc_BFu9ll()
{
  {
    init_simple_test("aBFu0c_Uc_BFu9ll");
    static STRUCT_IF_C aBFu0c_Uc_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu9ll.v1");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_Uc_BFu9ll");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_Uc_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu9ll, aBFu0c_Uc_BFu9ll)
//============================================================================



static void Test_aBFu0c_Uc_BFu9s()
{
  {
    init_simple_test("aBFu0c_Uc_BFu9s");
    static STRUCT_IF_C aBFu0c_Uc_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_BFu9s.v1");
    set_bf_and_test(lv, v2, 1, 0, 9, 1, "aBFu0c_Uc_BFu9s");
    set_bf_and_test(lv, v2, 1, 0, 9, hide_ull(1LL<<8), "aBFu0c_Uc_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_BFu9s, aBFu0c_Uc_BFu9s)
//============================================================================



static void Test_aBFu0c_Uc_C()
{
  {
    init_simple_test("aBFu0c_Uc_C");
    static STRUCT_IF_C aBFu0c_Uc_C lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_C.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_C, aBFu0c_Uc_C)
//============================================================================



static void Test_aBFu0c_Uc_D()
{
  {
    init_simple_test("aBFu0c_Uc_D");
    static STRUCT_IF_C aBFu0c_Uc_D lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Uc_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_D.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_D, aBFu0c_Uc_D)
//============================================================================



static void Test_aBFu0c_Uc_F()
{
  {
    init_simple_test("aBFu0c_Uc_F");
    static STRUCT_IF_C aBFu0c_Uc_F lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_F.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_F, aBFu0c_Uc_F)
//============================================================================



static void Test_aBFu0c_Uc_I()
{
  {
    init_simple_test("aBFu0c_Uc_I");
    static STRUCT_IF_C aBFu0c_Uc_I lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_I.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_I, aBFu0c_Uc_I)
//============================================================================



static void Test_aBFu0c_Uc_Ip()
{
  {
    init_simple_test("aBFu0c_Uc_Ip");
    static STRUCT_IF_C aBFu0c_Uc_Ip lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Uc_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_Ip.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_Ip, aBFu0c_Uc_Ip)
//============================================================================



static void Test_aBFu0c_Uc_L()
{
  {
    init_simple_test("aBFu0c_Uc_L");
    static STRUCT_IF_C aBFu0c_Uc_L lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Uc_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_L.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_L, aBFu0c_Uc_L)
//============================================================================



static void Test_aBFu0c_Uc_S()
{
  {
    init_simple_test("aBFu0c_Uc_S");
    static STRUCT_IF_C aBFu0c_Uc_S lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_S.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_S, aBFu0c_Uc_S)
//============================================================================



static void Test_aBFu0c_Uc_Uc()
{
  {
    init_simple_test("aBFu0c_Uc_Uc");
    static STRUCT_IF_C aBFu0c_Uc_Uc lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Uc_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_Uc.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_Uc, aBFu0c_Uc_Uc)
//============================================================================



static void Test_aBFu0c_Uc_Ui()
{
  {
    init_simple_test("aBFu0c_Uc_Ui");
    static STRUCT_IF_C aBFu0c_Uc_Ui lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Uc_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_Ui.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_Ui, aBFu0c_Uc_Ui)
//============================================================================



static void Test_aBFu0c_Uc_Ul()
{
  {
    init_simple_test("aBFu0c_Uc_Ul");
    static STRUCT_IF_C aBFu0c_Uc_Ul lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Uc_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_Ul.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_Ul, aBFu0c_Uc_Ul)
//============================================================================



static void Test_aBFu0c_Uc_Us()
{
  {
    init_simple_test("aBFu0c_Uc_Us");
    static STRUCT_IF_C aBFu0c_Uc_Us lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Uc_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_Us.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_Us, aBFu0c_Uc_Us)
//============================================================================



static void Test_aBFu0c_Uc_Vp()
{
  {
    init_simple_test("aBFu0c_Uc_Vp");
    static STRUCT_IF_C aBFu0c_Uc_Vp lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Uc_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Uc_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Uc_Vp.v1");
    check_field_offset(lv, v2, 1, "aBFu0c_Uc_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Uc_Vp, aBFu0c_Uc_Vp)
//============================================================================



static void Test_aBFu0c_Ui()
{
  {
    init_simple_test("aBFu0c_Ui");
    static STRUCT_IF_C aBFu0c_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui, aBFu0c_Ui)
//============================================================================



static void Test_aBFu0c_Ui_BFu0c()
{
  {
    init_simple_test("aBFu0c_Ui_BFu0c");
    static STRUCT_IF_C aBFu0c_Ui_BFu0c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Ui_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu0c, aBFu0c_Ui_BFu0c)
//============================================================================



static void Test_aBFu0c_Ui_BFu0i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu0i");
    static STRUCT_IF_C aBFu0c_Ui_BFu0i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Ui_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu0i, aBFu0c_Ui_BFu0i)
//============================================================================



static void Test_aBFu0c_Ui_BFu0ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu0ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Ui_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu0ll, aBFu0c_Ui_BFu0ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu0s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu0s");
    static STRUCT_IF_C aBFu0c_Ui_BFu0s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Ui_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu0s, aBFu0c_Ui_BFu0s)
//============================================================================



static void Test_aBFu0c_Ui_BFu15i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu15i");
    static STRUCT_IF_C aBFu0c_Ui_BFu15i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu15i.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_Ui_BFu15i");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_Ui_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu15i, aBFu0c_Ui_BFu15i)
//============================================================================



static void Test_aBFu0c_Ui_BFu15ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu15ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu15ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu15ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_Ui_BFu15ll");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_Ui_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu15ll, aBFu0c_Ui_BFu15ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu15s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu15s");
    static STRUCT_IF_C aBFu0c_Ui_BFu15s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu15s.v1");
    set_bf_and_test(lv, v2, 4, 0, 15, 1, "aBFu0c_Ui_BFu15s");
    set_bf_and_test(lv, v2, 4, 0, 15, hide_ull(1LL<<14), "aBFu0c_Ui_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu15s, aBFu0c_Ui_BFu15s)
//============================================================================



static void Test_aBFu0c_Ui_BFu16i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu16i");
    static STRUCT_IF_C aBFu0c_Ui_BFu16i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu16i.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_Ui_BFu16i");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_Ui_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu16i, aBFu0c_Ui_BFu16i)
//============================================================================



static void Test_aBFu0c_Ui_BFu16ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu16ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu16ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu16ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_Ui_BFu16ll");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_Ui_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu16ll, aBFu0c_Ui_BFu16ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu16s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu16s");
    static STRUCT_IF_C aBFu0c_Ui_BFu16s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu16s.v1");
    set_bf_and_test(lv, v2, 4, 0, 16, 1, "aBFu0c_Ui_BFu16s");
    set_bf_and_test(lv, v2, 4, 0, 16, hide_ull(1LL<<15), "aBFu0c_Ui_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu16s, aBFu0c_Ui_BFu16s)
//============================================================================



static void Test_aBFu0c_Ui_BFu17i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu17i");
    static STRUCT_IF_C aBFu0c_Ui_BFu17i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_Ui_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu17i.v1");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_Ui_BFu17i");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_Ui_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu17i, aBFu0c_Ui_BFu17i)
//============================================================================



static void Test_aBFu0c_Ui_BFu17ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu17ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu17ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_Ui_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu17ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 17, 1, "aBFu0c_Ui_BFu17ll");
    set_bf_and_test(lv, v2, 4, 0, 17, hide_ull(1LL<<16), "aBFu0c_Ui_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu17ll, aBFu0c_Ui_BFu17ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu1c()
{
  {
    init_simple_test("aBFu0c_Ui_BFu1c");
    static STRUCT_IF_C aBFu0c_Ui_BFu1c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu1c.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_Ui_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu1c, aBFu0c_Ui_BFu1c)
//============================================================================



static void Test_aBFu0c_Ui_BFu1i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu1i");
    static STRUCT_IF_C aBFu0c_Ui_BFu1i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu1i.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_Ui_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu1i, aBFu0c_Ui_BFu1i)
//============================================================================



static void Test_aBFu0c_Ui_BFu1ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu1ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu1ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu1ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_Ui_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu1ll, aBFu0c_Ui_BFu1ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu1s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu1s");
    static STRUCT_IF_C aBFu0c_Ui_BFu1s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu1s.v1");
    set_bf_and_test(lv, v2, 4, 0, 1, 1, "aBFu0c_Ui_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu1s, aBFu0c_Ui_BFu1s)
//============================================================================



static void Test_aBFu0c_Ui_BFu31i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu31i");
    static STRUCT_IF_C aBFu0c_Ui_BFu31i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu31i.v1");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_Ui_BFu31i");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_Ui_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu31i, aBFu0c_Ui_BFu31i)
//============================================================================



static void Test_aBFu0c_Ui_BFu31ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu31ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu31ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu31ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 31, 1, "aBFu0c_Ui_BFu31ll");
    set_bf_and_test(lv, v2, 4, 0, 31, hide_ull(1LL<<30), "aBFu0c_Ui_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu31ll, aBFu0c_Ui_BFu31ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu32i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu32i");
    static STRUCT_IF_C aBFu0c_Ui_BFu32i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu32i.v1");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_Ui_BFu32i");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_Ui_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu32i, aBFu0c_Ui_BFu32i)
//============================================================================



static void Test_aBFu0c_Ui_BFu32ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu32ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu32ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu32ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 32, 1, "aBFu0c_Ui_BFu32ll");
    set_bf_and_test(lv, v2, 4, 0, 32, hide_ull(1LL<<31), "aBFu0c_Ui_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu32ll, aBFu0c_Ui_BFu32ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu33()
{
  {
    init_simple_test("aBFu0c_Ui_BFu33");
    static STRUCT_IF_C aBFu0c_Ui_BFu33 lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ui_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu33.v1");
    set_bf_and_test(lv, v2, 4, 0, 33, 1, "aBFu0c_Ui_BFu33");
    set_bf_and_test(lv, v2, 4, 0, 33, hide_ull(1LL<<32), "aBFu0c_Ui_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu33, aBFu0c_Ui_BFu33)
//============================================================================



static void Test_aBFu0c_Ui_BFu7c()
{
  {
    init_simple_test("aBFu0c_Ui_BFu7c");
    static STRUCT_IF_C aBFu0c_Ui_BFu7c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu7c.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_Ui_BFu7c");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ui_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu7c, aBFu0c_Ui_BFu7c)
//============================================================================



static void Test_aBFu0c_Ui_BFu7i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu7i");
    static STRUCT_IF_C aBFu0c_Ui_BFu7i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu7i.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_Ui_BFu7i");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ui_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu7i, aBFu0c_Ui_BFu7i)
//============================================================================



static void Test_aBFu0c_Ui_BFu7ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu7ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu7ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu7ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_Ui_BFu7ll");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ui_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu7ll, aBFu0c_Ui_BFu7ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu7s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu7s");
    static STRUCT_IF_C aBFu0c_Ui_BFu7s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu7s.v1");
    set_bf_and_test(lv, v2, 4, 0, 7, 1, "aBFu0c_Ui_BFu7s");
    set_bf_and_test(lv, v2, 4, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ui_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu7s, aBFu0c_Ui_BFu7s)
//============================================================================



static void Test_aBFu0c_Ui_BFu8c()
{
  {
    init_simple_test("aBFu0c_Ui_BFu8c");
    static STRUCT_IF_C aBFu0c_Ui_BFu8c lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu8c.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_Ui_BFu8c");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ui_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu8c, aBFu0c_Ui_BFu8c)
//============================================================================



static void Test_aBFu0c_Ui_BFu8i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu8i");
    static STRUCT_IF_C aBFu0c_Ui_BFu8i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu8i.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_Ui_BFu8i");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ui_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu8i, aBFu0c_Ui_BFu8i)
//============================================================================



static void Test_aBFu0c_Ui_BFu8ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu8ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu8ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu8ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_Ui_BFu8ll");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ui_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu8ll, aBFu0c_Ui_BFu8ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu8s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu8s");
    static STRUCT_IF_C aBFu0c_Ui_BFu8s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu8s.v1");
    set_bf_and_test(lv, v2, 4, 0, 8, 1, "aBFu0c_Ui_BFu8s");
    set_bf_and_test(lv, v2, 4, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ui_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu8s, aBFu0c_Ui_BFu8s)
//============================================================================



static void Test_aBFu0c_Ui_BFu9i()
{
  {
    init_simple_test("aBFu0c_Ui_BFu9i");
    static STRUCT_IF_C aBFu0c_Ui_BFu9i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu9i.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_Ui_BFu9i");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_Ui_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu9i, aBFu0c_Ui_BFu9i)
//============================================================================



static void Test_aBFu0c_Ui_BFu9ll()
{
  {
    init_simple_test("aBFu0c_Ui_BFu9ll");
    static STRUCT_IF_C aBFu0c_Ui_BFu9ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu9ll.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_Ui_BFu9ll");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_Ui_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu9ll, aBFu0c_Ui_BFu9ll)
//============================================================================



static void Test_aBFu0c_Ui_BFu9s()
{
  {
    init_simple_test("aBFu0c_Ui_BFu9s");
    static STRUCT_IF_C aBFu0c_Ui_BFu9s lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_BFu9s.v1");
    set_bf_and_test(lv, v2, 4, 0, 9, 1, "aBFu0c_Ui_BFu9s");
    set_bf_and_test(lv, v2, 4, 0, 9, hide_ull(1LL<<8), "aBFu0c_Ui_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_BFu9s, aBFu0c_Ui_BFu9s)
//============================================================================



static void Test_aBFu0c_Ui_C()
{
  {
    init_simple_test("aBFu0c_Ui_C");
    static STRUCT_IF_C aBFu0c_Ui_C lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_C.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_C, aBFu0c_Ui_C)
//============================================================================



static void Test_aBFu0c_Ui_D()
{
  {
    init_simple_test("aBFu0c_Ui_D");
    static STRUCT_IF_C aBFu0c_Ui_D lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ui_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_D.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_D, aBFu0c_Ui_D)
//============================================================================



static void Test_aBFu0c_Ui_F()
{
  {
    init_simple_test("aBFu0c_Ui_F");
    static STRUCT_IF_C aBFu0c_Ui_F lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_F.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_F, aBFu0c_Ui_F)
//============================================================================



static void Test_aBFu0c_Ui_I()
{
  {
    init_simple_test("aBFu0c_Ui_I");
    static STRUCT_IF_C aBFu0c_Ui_I lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_I.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_I, aBFu0c_Ui_I)
//============================================================================



static void Test_aBFu0c_Ui_Ip()
{
  {
    init_simple_test("aBFu0c_Ui_Ip");
    static STRUCT_IF_C aBFu0c_Ui_Ip lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ui_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_Ip.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_Ip, aBFu0c_Ui_Ip)
//============================================================================



static void Test_aBFu0c_Ui_L()
{
  {
    init_simple_test("aBFu0c_Ui_L");
    static STRUCT_IF_C aBFu0c_Ui_L lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ui_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_L.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_L, aBFu0c_Ui_L)
//============================================================================



static void Test_aBFu0c_Ui_S()
{
  {
    init_simple_test("aBFu0c_Ui_S");
    static STRUCT_IF_C aBFu0c_Ui_S lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_S.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_S, aBFu0c_Ui_S)
//============================================================================



static void Test_aBFu0c_Ui_Uc()
{
  {
    init_simple_test("aBFu0c_Ui_Uc");
    static STRUCT_IF_C aBFu0c_Ui_Uc lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Ui_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_Uc.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_Uc, aBFu0c_Ui_Uc)
//============================================================================



static void Test_aBFu0c_Ui_Ui()
{
  {
    init_simple_test("aBFu0c_Ui_Ui");
    static STRUCT_IF_C aBFu0c_Ui_Ui lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ui_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_Ui.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_Ui, aBFu0c_Ui_Ui)
//============================================================================



static void Test_aBFu0c_Ui_Ul()
{
  {
    init_simple_test("aBFu0c_Ui_Ul");
    static STRUCT_IF_C aBFu0c_Ui_Ul lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ui_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_Ul.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_Ul, aBFu0c_Ui_Ul)
//============================================================================



static void Test_aBFu0c_Ui_Us()
{
  {
    init_simple_test("aBFu0c_Ui_Us");
    static STRUCT_IF_C aBFu0c_Ui_Us lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Ui_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_Us.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_Us, aBFu0c_Ui_Us)
//============================================================================



static void Test_aBFu0c_Ui_Vp()
{
  {
    init_simple_test("aBFu0c_Ui_Vp");
    static STRUCT_IF_C aBFu0c_Ui_Vp lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Ui_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ui_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ui_Vp.v1");
    check_field_offset(lv, v2, 4, "aBFu0c_Ui_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ui_Vp, aBFu0c_Ui_Vp)
//============================================================================



static void Test_aBFu0c_Ul()
{
  {
    init_simple_test("aBFu0c_Ul");
    static STRUCT_IF_C aBFu0c_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul, aBFu0c_Ul)
//============================================================================



static void Test_aBFu0c_Ul_BFu0c()
{
  {
    init_simple_test("aBFu0c_Ul_BFu0c");
    static STRUCT_IF_C aBFu0c_Ul_BFu0c lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ul_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu0c, aBFu0c_Ul_BFu0c)
//============================================================================



static void Test_aBFu0c_Ul_BFu0i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu0i");
    static STRUCT_IF_C aBFu0c_Ul_BFu0i lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ul_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu0i, aBFu0c_Ul_BFu0i)
//============================================================================



static void Test_aBFu0c_Ul_BFu0ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu0ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu0ll lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ul_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu0ll, aBFu0c_Ul_BFu0ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu0s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu0s");
    static STRUCT_IF_C aBFu0c_Ul_BFu0s lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0c_Ul_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu0s, aBFu0c_Ul_BFu0s)
//============================================================================



static void Test_aBFu0c_Ul_BFu15i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu15i");
    static STRUCT_IF_C aBFu0c_Ul_BFu15i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu15i.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_Ul_BFu15i");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_Ul_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu15i, aBFu0c_Ul_BFu15i)
//============================================================================



static void Test_aBFu0c_Ul_BFu15ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu15ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu15ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu15ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_Ul_BFu15ll");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_Ul_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu15ll, aBFu0c_Ul_BFu15ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu15s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu15s");
    static STRUCT_IF_C aBFu0c_Ul_BFu15s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu15s.v1");
    set_bf_and_test(lv, v2, 8, 0, 15, 1, "aBFu0c_Ul_BFu15s");
    set_bf_and_test(lv, v2, 8, 0, 15, hide_ull(1LL<<14), "aBFu0c_Ul_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu15s, aBFu0c_Ul_BFu15s)
//============================================================================



static void Test_aBFu0c_Ul_BFu16i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu16i");
    static STRUCT_IF_C aBFu0c_Ul_BFu16i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu16i.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_Ul_BFu16i");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_Ul_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu16i, aBFu0c_Ul_BFu16i)
//============================================================================



static void Test_aBFu0c_Ul_BFu16ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu16ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu16ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu16ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_Ul_BFu16ll");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_Ul_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu16ll, aBFu0c_Ul_BFu16ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu16s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu16s");
    static STRUCT_IF_C aBFu0c_Ul_BFu16s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu16s.v1");
    set_bf_and_test(lv, v2, 8, 0, 16, 1, "aBFu0c_Ul_BFu16s");
    set_bf_and_test(lv, v2, 8, 0, 16, hide_ull(1LL<<15), "aBFu0c_Ul_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu16s, aBFu0c_Ul_BFu16s)
//============================================================================



static void Test_aBFu0c_Ul_BFu17i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu17i");
    static STRUCT_IF_C aBFu0c_Ul_BFu17i lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_Ul_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu17i.v1");
    set_bf_and_test(lv, v2, 8, 0, 17, 1, "aBFu0c_Ul_BFu17i");
    set_bf_and_test(lv, v2, 8, 0, 17, hide_ull(1LL<<16), "aBFu0c_Ul_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu17i, aBFu0c_Ul_BFu17i)
//============================================================================



static void Test_aBFu0c_Ul_BFu17ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu17ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu17ll lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0c_Ul_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu17ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 17, 1, "aBFu0c_Ul_BFu17ll");
    set_bf_and_test(lv, v2, 8, 0, 17, hide_ull(1LL<<16), "aBFu0c_Ul_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu17ll, aBFu0c_Ul_BFu17ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu1c()
{
  {
    init_simple_test("aBFu0c_Ul_BFu1c");
    static STRUCT_IF_C aBFu0c_Ul_BFu1c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu1c.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_Ul_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu1c, aBFu0c_Ul_BFu1c)
//============================================================================



static void Test_aBFu0c_Ul_BFu1i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu1i");
    static STRUCT_IF_C aBFu0c_Ul_BFu1i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu1i.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_Ul_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu1i, aBFu0c_Ul_BFu1i)
//============================================================================



static void Test_aBFu0c_Ul_BFu1ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu1ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu1ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu1ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_Ul_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu1ll, aBFu0c_Ul_BFu1ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu1s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu1s");
    static STRUCT_IF_C aBFu0c_Ul_BFu1s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu1s.v1");
    set_bf_and_test(lv, v2, 8, 0, 1, 1, "aBFu0c_Ul_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu1s, aBFu0c_Ul_BFu1s)
//============================================================================



static void Test_aBFu0c_Ul_BFu31i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu31i");
    static STRUCT_IF_C aBFu0c_Ul_BFu31i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu31i.v1");
    set_bf_and_test(lv, v2, 8, 0, 31, 1, "aBFu0c_Ul_BFu31i");
    set_bf_and_test(lv, v2, 8, 0, 31, hide_ull(1LL<<30), "aBFu0c_Ul_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu31i, aBFu0c_Ul_BFu31i)
//============================================================================



static void Test_aBFu0c_Ul_BFu31ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu31ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu31ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu31ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 31, 1, "aBFu0c_Ul_BFu31ll");
    set_bf_and_test(lv, v2, 8, 0, 31, hide_ull(1LL<<30), "aBFu0c_Ul_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu31ll, aBFu0c_Ul_BFu31ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu32i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu32i");
    static STRUCT_IF_C aBFu0c_Ul_BFu32i lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu32i.v1");
    set_bf_and_test(lv, v2, 8, 0, 32, 1, "aBFu0c_Ul_BFu32i");
    set_bf_and_test(lv, v2, 8, 0, 32, hide_ull(1LL<<31), "aBFu0c_Ul_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu32i, aBFu0c_Ul_BFu32i)
//============================================================================



static void Test_aBFu0c_Ul_BFu32ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu32ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu32ll lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu32ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 32, 1, "aBFu0c_Ul_BFu32ll");
    set_bf_and_test(lv, v2, 8, 0, 32, hide_ull(1LL<<31), "aBFu0c_Ul_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu32ll, aBFu0c_Ul_BFu32ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu33()
{
  {
    init_simple_test("aBFu0c_Ul_BFu33");
    static STRUCT_IF_C aBFu0c_Ul_BFu33 lv;
    check2(sizeof(lv), 13, "sizeof(aBFu0c_Ul_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu33.v1");
    set_bf_and_test(lv, v2, 8, 0, 33, 1, "aBFu0c_Ul_BFu33");
    set_bf_and_test(lv, v2, 8, 0, 33, hide_ull(1LL<<32), "aBFu0c_Ul_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu33, aBFu0c_Ul_BFu33)
//============================================================================



static void Test_aBFu0c_Ul_BFu7c()
{
  {
    init_simple_test("aBFu0c_Ul_BFu7c");
    static STRUCT_IF_C aBFu0c_Ul_BFu7c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu7c.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_Ul_BFu7c");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ul_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu7c, aBFu0c_Ul_BFu7c)
//============================================================================



static void Test_aBFu0c_Ul_BFu7i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu7i");
    static STRUCT_IF_C aBFu0c_Ul_BFu7i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu7i.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_Ul_BFu7i");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ul_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu7i, aBFu0c_Ul_BFu7i)
//============================================================================



static void Test_aBFu0c_Ul_BFu7ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu7ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu7ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu7ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_Ul_BFu7ll");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ul_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu7ll, aBFu0c_Ul_BFu7ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu7s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu7s");
    static STRUCT_IF_C aBFu0c_Ul_BFu7s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu7s.v1");
    set_bf_and_test(lv, v2, 8, 0, 7, 1, "aBFu0c_Ul_BFu7s");
    set_bf_and_test(lv, v2, 8, 0, 7, hide_ull(1LL<<6), "aBFu0c_Ul_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu7s, aBFu0c_Ul_BFu7s)
//============================================================================



static void Test_aBFu0c_Ul_BFu8c()
{
  {
    init_simple_test("aBFu0c_Ul_BFu8c");
    static STRUCT_IF_C aBFu0c_Ul_BFu8c lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu8c.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_Ul_BFu8c");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ul_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu8c, aBFu0c_Ul_BFu8c)
//============================================================================



static void Test_aBFu0c_Ul_BFu8i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu8i");
    static STRUCT_IF_C aBFu0c_Ul_BFu8i lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu8i.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_Ul_BFu8i");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ul_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu8i, aBFu0c_Ul_BFu8i)
//============================================================================



static void Test_aBFu0c_Ul_BFu8ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu8ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu8ll lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu8ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_Ul_BFu8ll");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ul_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu8ll, aBFu0c_Ul_BFu8ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu8s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu8s");
    static STRUCT_IF_C aBFu0c_Ul_BFu8s lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu8s.v1");
    set_bf_and_test(lv, v2, 8, 0, 8, 1, "aBFu0c_Ul_BFu8s");
    set_bf_and_test(lv, v2, 8, 0, 8, hide_ull(1LL<<7), "aBFu0c_Ul_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu8s, aBFu0c_Ul_BFu8s)
//============================================================================



static void Test_aBFu0c_Ul_BFu9i()
{
  {
    init_simple_test("aBFu0c_Ul_BFu9i");
    static STRUCT_IF_C aBFu0c_Ul_BFu9i lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu9i.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_Ul_BFu9i");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_Ul_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu9i, aBFu0c_Ul_BFu9i)
//============================================================================



static void Test_aBFu0c_Ul_BFu9ll()
{
  {
    init_simple_test("aBFu0c_Ul_BFu9ll");
    static STRUCT_IF_C aBFu0c_Ul_BFu9ll lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu9ll.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_Ul_BFu9ll");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_Ul_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu9ll, aBFu0c_Ul_BFu9ll)
//============================================================================



static void Test_aBFu0c_Ul_BFu9s()
{
  {
    init_simple_test("aBFu0c_Ul_BFu9s");
    static STRUCT_IF_C aBFu0c_Ul_BFu9s lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_BFu9s.v1");
    set_bf_and_test(lv, v2, 8, 0, 9, 1, "aBFu0c_Ul_BFu9s");
    set_bf_and_test(lv, v2, 8, 0, 9, hide_ull(1LL<<8), "aBFu0c_Ul_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_BFu9s, aBFu0c_Ul_BFu9s)
//============================================================================



static void Test_aBFu0c_Ul_C()
{
  {
    init_simple_test("aBFu0c_Ul_C");
    static STRUCT_IF_C aBFu0c_Ul_C lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_C.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_C, aBFu0c_Ul_C)
//============================================================================



static void Test_aBFu0c_Ul_D()
{
  {
    init_simple_test("aBFu0c_Ul_D");
    static STRUCT_IF_C aBFu0c_Ul_D lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_Ul_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_D.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_D, aBFu0c_Ul_D)
//============================================================================



static void Test_aBFu0c_Ul_F()
{
  {
    init_simple_test("aBFu0c_Ul_F");
    static STRUCT_IF_C aBFu0c_Ul_F lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_F.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_F, aBFu0c_Ul_F)
//============================================================================



static void Test_aBFu0c_Ul_I()
{
  {
    init_simple_test("aBFu0c_Ul_I");
    static STRUCT_IF_C aBFu0c_Ul_I lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_I.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_I, aBFu0c_Ul_I)
//============================================================================



static void Test_aBFu0c_Ul_Ip()
{
  {
    init_simple_test("aBFu0c_Ul_Ip");
    static STRUCT_IF_C aBFu0c_Ul_Ip lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Ul_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_Ip.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_Ip, aBFu0c_Ul_Ip)
//============================================================================



static void Test_aBFu0c_Ul_L()
{
  {
    init_simple_test("aBFu0c_Ul_L");
    static STRUCT_IF_C aBFu0c_Ul_L lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_Ul_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_L.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_L, aBFu0c_Ul_L)
//============================================================================



static void Test_aBFu0c_Ul_S()
{
  {
    init_simple_test("aBFu0c_Ul_S");
    static STRUCT_IF_C aBFu0c_Ul_S lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_S.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_S, aBFu0c_Ul_S)
//============================================================================



static void Test_aBFu0c_Ul_Uc()
{
  {
    init_simple_test("aBFu0c_Ul_Uc");
    static STRUCT_IF_C aBFu0c_Ul_Uc lv;
    check2(sizeof(lv), 9, "sizeof(aBFu0c_Ul_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_Uc.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_Uc, aBFu0c_Ul_Uc)
//============================================================================



static void Test_aBFu0c_Ul_Ui()
{
  {
    init_simple_test("aBFu0c_Ul_Ui");
    static STRUCT_IF_C aBFu0c_Ul_Ui lv;
    check2(sizeof(lv), 12, "sizeof(aBFu0c_Ul_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_Ui.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_Ui, aBFu0c_Ul_Ui)
//============================================================================



static void Test_aBFu0c_Ul_Ul()
{
  {
    init_simple_test("aBFu0c_Ul_Ul");
    static STRUCT_IF_C aBFu0c_Ul_Ul lv;
    check2(sizeof(lv), 16, "sizeof(aBFu0c_Ul_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_Ul.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_Ul, aBFu0c_Ul_Ul)
//============================================================================



static void Test_aBFu0c_Ul_Us()
{
  {
    init_simple_test("aBFu0c_Ul_Us");
    static STRUCT_IF_C aBFu0c_Ul_Us lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Ul_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_Us.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_Us, aBFu0c_Ul_Us)
//============================================================================



static void Test_aBFu0c_Ul_Vp()
{
  {
    init_simple_test("aBFu0c_Ul_Vp");
    static STRUCT_IF_C aBFu0c_Ul_Vp lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Ul_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Ul_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Ul_Vp.v1");
    check_field_offset(lv, v2, 8, "aBFu0c_Ul_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Ul_Vp, aBFu0c_Ul_Vp)
//============================================================================



static void Test_aBFu0c_Us()
{
  {
    init_simple_test("aBFu0c_Us");
    static STRUCT_IF_C aBFu0c_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us, aBFu0c_Us)
//============================================================================



static void Test_aBFu0c_Us_BFu0c()
{
  {
    init_simple_test("aBFu0c_Us_BFu0c");
    static STRUCT_IF_C aBFu0c_Us_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Us_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu0c, aBFu0c_Us_BFu0c)
//============================================================================



static void Test_aBFu0c_Us_BFu0i()
{
  {
    init_simple_test("aBFu0c_Us_BFu0i");
    static STRUCT_IF_C aBFu0c_Us_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0c_Us_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu0i, aBFu0c_Us_BFu0i)
//============================================================================



static void Test_aBFu0c_Us_BFu0ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu0ll");
    static STRUCT_IF_C aBFu0c_Us_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Us_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu0ll, aBFu0c_Us_BFu0ll)
//============================================================================



static void Test_aBFu0c_Us_BFu0s()
{
  {
    init_simple_test("aBFu0c_Us_BFu0s");
    static STRUCT_IF_C aBFu0c_Us_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0c_Us_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu0s, aBFu0c_Us_BFu0s)
//============================================================================



static void Test_aBFu0c_Us_BFu15i()
{
  {
    init_simple_test("aBFu0c_Us_BFu15i");
    static STRUCT_IF_C aBFu0c_Us_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu15i.v1");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_Us_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_Us_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu15i, aBFu0c_Us_BFu15i)
//============================================================================



static void Test_aBFu0c_Us_BFu15ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu15ll");
    static STRUCT_IF_C aBFu0c_Us_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu15ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_Us_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_Us_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu15ll, aBFu0c_Us_BFu15ll)
//============================================================================



static void Test_aBFu0c_Us_BFu15s()
{
  {
    init_simple_test("aBFu0c_Us_BFu15s");
    static STRUCT_IF_C aBFu0c_Us_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu15s.v1");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0c_Us_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0c_Us_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu15s, aBFu0c_Us_BFu15s)
//============================================================================



static void Test_aBFu0c_Us_BFu16i()
{
  {
    init_simple_test("aBFu0c_Us_BFu16i");
    static STRUCT_IF_C aBFu0c_Us_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu16i.v1");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_Us_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_Us_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu16i, aBFu0c_Us_BFu16i)
//============================================================================



static void Test_aBFu0c_Us_BFu16ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu16ll");
    static STRUCT_IF_C aBFu0c_Us_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu16ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_Us_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_Us_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu16ll, aBFu0c_Us_BFu16ll)
//============================================================================



static void Test_aBFu0c_Us_BFu16s()
{
  {
    init_simple_test("aBFu0c_Us_BFu16s");
    static STRUCT_IF_C aBFu0c_Us_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu16s.v1");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0c_Us_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0c_Us_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu16s, aBFu0c_Us_BFu16s)
//============================================================================



static void Test_aBFu0c_Us_BFu17i()
{
  {
    init_simple_test("aBFu0c_Us_BFu17i");
    static STRUCT_IF_C aBFu0c_Us_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Us_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu17i.v1");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_Us_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_Us_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu17i, aBFu0c_Us_BFu17i)
//============================================================================



static void Test_aBFu0c_Us_BFu17ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu17ll");
    static STRUCT_IF_C aBFu0c_Us_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0c_Us_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu17ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0c_Us_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0c_Us_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu17ll, aBFu0c_Us_BFu17ll)
//============================================================================



static void Test_aBFu0c_Us_BFu1c()
{
  {
    init_simple_test("aBFu0c_Us_BFu1c");
    static STRUCT_IF_C aBFu0c_Us_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu1c.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_Us_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu1c, aBFu0c_Us_BFu1c)
//============================================================================



static void Test_aBFu0c_Us_BFu1i()
{
  {
    init_simple_test("aBFu0c_Us_BFu1i");
    static STRUCT_IF_C aBFu0c_Us_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu1i.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_Us_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu1i, aBFu0c_Us_BFu1i)
//============================================================================



static void Test_aBFu0c_Us_BFu1ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu1ll");
    static STRUCT_IF_C aBFu0c_Us_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu1ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_Us_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu1ll, aBFu0c_Us_BFu1ll)
//============================================================================



static void Test_aBFu0c_Us_BFu1s()
{
  {
    init_simple_test("aBFu0c_Us_BFu1s");
    static STRUCT_IF_C aBFu0c_Us_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu1s.v1");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0c_Us_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu1s, aBFu0c_Us_BFu1s)
//============================================================================



static void Test_aBFu0c_Us_BFu31i()
{
  {
    init_simple_test("aBFu0c_Us_BFu31i");
    static STRUCT_IF_C aBFu0c_Us_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu31i.v1");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_Us_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_Us_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu31i, aBFu0c_Us_BFu31i)
//============================================================================



static void Test_aBFu0c_Us_BFu31ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu31ll");
    static STRUCT_IF_C aBFu0c_Us_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu31ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0c_Us_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0c_Us_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu31ll, aBFu0c_Us_BFu31ll)
//============================================================================



static void Test_aBFu0c_Us_BFu32i()
{
  {
    init_simple_test("aBFu0c_Us_BFu32i");
    static STRUCT_IF_C aBFu0c_Us_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu32i.v1");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_Us_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_Us_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu32i, aBFu0c_Us_BFu32i)
//============================================================================



static void Test_aBFu0c_Us_BFu32ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu32ll");
    static STRUCT_IF_C aBFu0c_Us_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu32ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0c_Us_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0c_Us_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu32ll, aBFu0c_Us_BFu32ll)
//============================================================================



static void Test_aBFu0c_Us_BFu33()
{
  {
    init_simple_test("aBFu0c_Us_BFu33");
    static STRUCT_IF_C aBFu0c_Us_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0c_Us_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu33.v1");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0c_Us_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0c_Us_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu33, aBFu0c_Us_BFu33)
//============================================================================



static void Test_aBFu0c_Us_BFu7c()
{
  {
    init_simple_test("aBFu0c_Us_BFu7c");
    static STRUCT_IF_C aBFu0c_Us_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu7c.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_Us_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_Us_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu7c, aBFu0c_Us_BFu7c)
//============================================================================



static void Test_aBFu0c_Us_BFu7i()
{
  {
    init_simple_test("aBFu0c_Us_BFu7i");
    static STRUCT_IF_C aBFu0c_Us_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu7i.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_Us_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_Us_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu7i, aBFu0c_Us_BFu7i)
//============================================================================



static void Test_aBFu0c_Us_BFu7ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu7ll");
    static STRUCT_IF_C aBFu0c_Us_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu7ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_Us_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_Us_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu7ll, aBFu0c_Us_BFu7ll)
//============================================================================



static void Test_aBFu0c_Us_BFu7s()
{
  {
    init_simple_test("aBFu0c_Us_BFu7s");
    static STRUCT_IF_C aBFu0c_Us_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu7s.v1");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0c_Us_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0c_Us_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu7s, aBFu0c_Us_BFu7s)
//============================================================================



static void Test_aBFu0c_Us_BFu8c()
{
  {
    init_simple_test("aBFu0c_Us_BFu8c");
    static STRUCT_IF_C aBFu0c_Us_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu8c.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_Us_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_Us_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu8c, aBFu0c_Us_BFu8c)
//============================================================================



static void Test_aBFu0c_Us_BFu8i()
{
  {
    init_simple_test("aBFu0c_Us_BFu8i");
    static STRUCT_IF_C aBFu0c_Us_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu8i.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_Us_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_Us_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu8i, aBFu0c_Us_BFu8i)
//============================================================================



static void Test_aBFu0c_Us_BFu8ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu8ll");
    static STRUCT_IF_C aBFu0c_Us_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu8ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_Us_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_Us_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu8ll, aBFu0c_Us_BFu8ll)
//============================================================================



static void Test_aBFu0c_Us_BFu8s()
{
  {
    init_simple_test("aBFu0c_Us_BFu8s");
    static STRUCT_IF_C aBFu0c_Us_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu8s.v1");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0c_Us_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0c_Us_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu8s, aBFu0c_Us_BFu8s)
//============================================================================



static void Test_aBFu0c_Us_BFu9i()
{
  {
    init_simple_test("aBFu0c_Us_BFu9i");
    static STRUCT_IF_C aBFu0c_Us_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu9i.v1");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_Us_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_Us_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu9i, aBFu0c_Us_BFu9i)
//============================================================================



static void Test_aBFu0c_Us_BFu9ll()
{
  {
    init_simple_test("aBFu0c_Us_BFu9ll");
    static STRUCT_IF_C aBFu0c_Us_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu9ll.v1");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_Us_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_Us_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu9ll, aBFu0c_Us_BFu9ll)
//============================================================================



static void Test_aBFu0c_Us_BFu9s()
{
  {
    init_simple_test("aBFu0c_Us_BFu9s");
    static STRUCT_IF_C aBFu0c_Us_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_BFu9s.v1");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0c_Us_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0c_Us_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_BFu9s, aBFu0c_Us_BFu9s)
//============================================================================



static void Test_aBFu0c_Us_C()
{
  {
    init_simple_test("aBFu0c_Us_C");
    static STRUCT_IF_C aBFu0c_Us_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_C.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_C, aBFu0c_Us_C)
//============================================================================



static void Test_aBFu0c_Us_D()
{
  {
    init_simple_test("aBFu0c_Us_D");
    static STRUCT_IF_C aBFu0c_Us_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Us_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_D.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_D, aBFu0c_Us_D)
//============================================================================



static void Test_aBFu0c_Us_F()
{
  {
    init_simple_test("aBFu0c_Us_F");
    static STRUCT_IF_C aBFu0c_Us_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_F.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_F, aBFu0c_Us_F)
//============================================================================



static void Test_aBFu0c_Us_I()
{
  {
    init_simple_test("aBFu0c_Us_I");
    static STRUCT_IF_C aBFu0c_Us_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_I.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_I, aBFu0c_Us_I)
//============================================================================



static void Test_aBFu0c_Us_Ip()
{
  {
    init_simple_test("aBFu0c_Us_Ip");
    static STRUCT_IF_C aBFu0c_Us_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Us_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_Ip.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_Ip, aBFu0c_Us_Ip)
//============================================================================



static void Test_aBFu0c_Us_L()
{
  {
    init_simple_test("aBFu0c_Us_L");
    static STRUCT_IF_C aBFu0c_Us_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Us_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_L.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_L, aBFu0c_Us_L)
//============================================================================



static void Test_aBFu0c_Us_S()
{
  {
    init_simple_test("aBFu0c_Us_S");
    static STRUCT_IF_C aBFu0c_Us_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_S.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_S, aBFu0c_Us_S)
//============================================================================



static void Test_aBFu0c_Us_Uc()
{
  {
    init_simple_test("aBFu0c_Us_Uc");
    static STRUCT_IF_C aBFu0c_Us_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0c_Us_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_Uc.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_Uc, aBFu0c_Us_Uc)
//============================================================================



static void Test_aBFu0c_Us_Ui()
{
  {
    init_simple_test("aBFu0c_Us_Ui");
    static STRUCT_IF_C aBFu0c_Us_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0c_Us_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_Ui.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_Ui, aBFu0c_Us_Ui)
//============================================================================



static void Test_aBFu0c_Us_Ul()
{
  {
    init_simple_test("aBFu0c_Us_Ul");
    static STRUCT_IF_C aBFu0c_Us_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0c_Us_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_Ul.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_Ul, aBFu0c_Us_Ul)
//============================================================================



static void Test_aBFu0c_Us_Us()
{
  {
    init_simple_test("aBFu0c_Us_Us");
    static STRUCT_IF_C aBFu0c_Us_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0c_Us_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_Us.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_Us, aBFu0c_Us_Us)
//============================================================================



static void Test_aBFu0c_Us_Vp()
{
  {
    init_simple_test("aBFu0c_Us_Vp");
    static STRUCT_IF_C aBFu0c_Us_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Us_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Us_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Us_Vp.v1");
    check_field_offset(lv, v2, 2, "aBFu0c_Us_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Us_Vp, aBFu0c_Us_Vp)
//============================================================================



static void Test_aBFu0c_Vp()
{
  {
    init_simple_test("aBFu0c_Vp");
    static STRUCT_IF_C aBFu0c_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp, aBFu0c_Vp)
//============================================================================



static void Test_aBFu0c_Vp_BFu0c()
{
  {
    init_simple_test("aBFu0c_Vp_BFu0c");
    static STRUCT_IF_C aBFu0c_Vp_BFu0c lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Vp_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu0c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu0c.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu0c, aBFu0c_Vp_BFu0c)
//============================================================================



static void Test_aBFu0c_Vp_BFu0i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu0i");
    static STRUCT_IF_C aBFu0c_Vp_BFu0i lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Vp_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu0i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu0i.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu0i, aBFu0c_Vp_BFu0i)
//============================================================================



static void Test_aBFu0c_Vp_BFu0ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu0ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Vp_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu0ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu0ll.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu0ll, aBFu0c_Vp_BFu0ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu0s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu0s");
    static STRUCT_IF_C aBFu0c_Vp_BFu0s lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0c_Vp_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu0s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu0s.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu0s, aBFu0c_Vp_BFu0s)
//============================================================================



static void Test_aBFu0c_Vp_BFu15i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu15i");
    static STRUCT_IF_C aBFu0c_Vp_BFu15i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu15i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu15i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, 1, "aBFu0c_Vp_BFu15i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, hide_ull(1LL<<14), "aBFu0c_Vp_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu15i, aBFu0c_Vp_BFu15i)
//============================================================================



static void Test_aBFu0c_Vp_BFu15ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu15ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu15ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu15ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu15ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, 1, "aBFu0c_Vp_BFu15ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, hide_ull(1LL<<14), "aBFu0c_Vp_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu15ll, aBFu0c_Vp_BFu15ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu15s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu15s");
    static STRUCT_IF_C aBFu0c_Vp_BFu15s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu15s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu15s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, 1, "aBFu0c_Vp_BFu15s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 15, hide_ull(1LL<<14), "aBFu0c_Vp_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu15s, aBFu0c_Vp_BFu15s)
//============================================================================



static void Test_aBFu0c_Vp_BFu16i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu16i");
    static STRUCT_IF_C aBFu0c_Vp_BFu16i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu16i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu16i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, 1, "aBFu0c_Vp_BFu16i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, hide_ull(1LL<<15), "aBFu0c_Vp_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu16i, aBFu0c_Vp_BFu16i)
//============================================================================



static void Test_aBFu0c_Vp_BFu16ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu16ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu16ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu16ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu16ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, 1, "aBFu0c_Vp_BFu16ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, hide_ull(1LL<<15), "aBFu0c_Vp_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu16ll, aBFu0c_Vp_BFu16ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu16s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu16s");
    static STRUCT_IF_C aBFu0c_Vp_BFu16s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu16s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu16s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, 1, "aBFu0c_Vp_BFu16s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 16, hide_ull(1LL<<15), "aBFu0c_Vp_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu16s, aBFu0c_Vp_BFu16s)
//============================================================================



static void Test_aBFu0c_Vp_BFu17i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu17i");
    static STRUCT_IF_C aBFu0c_Vp_BFu17i lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_Vp_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu17i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu17i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, 1, "aBFu0c_Vp_BFu17i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, hide_ull(1LL<<16), "aBFu0c_Vp_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu17i, aBFu0c_Vp_BFu17i)
//============================================================================



static void Test_aBFu0c_Vp_BFu17ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu17ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu17ll lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0c_Vp_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu17ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu17ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, 1, "aBFu0c_Vp_BFu17ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 17, hide_ull(1LL<<16), "aBFu0c_Vp_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu17ll, aBFu0c_Vp_BFu17ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu1c()
{
  {
    init_simple_test("aBFu0c_Vp_BFu1c");
    static STRUCT_IF_C aBFu0c_Vp_BFu1c lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu1c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu1c.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Vp_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu1c, aBFu0c_Vp_BFu1c)
//============================================================================



static void Test_aBFu0c_Vp_BFu1i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu1i");
    static STRUCT_IF_C aBFu0c_Vp_BFu1i lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu1i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu1i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Vp_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu1i, aBFu0c_Vp_BFu1i)
//============================================================================



static void Test_aBFu0c_Vp_BFu1ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu1ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu1ll lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu1ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu1ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Vp_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu1ll, aBFu0c_Vp_BFu1ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu1s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu1s");
    static STRUCT_IF_C aBFu0c_Vp_BFu1s lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu1s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu1s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 1, 1, "aBFu0c_Vp_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu1s, aBFu0c_Vp_BFu1s)
//============================================================================



static void Test_aBFu0c_Vp_BFu31i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu31i");
    static STRUCT_IF_C aBFu0c_Vp_BFu31i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu31i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu31i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, 1, "aBFu0c_Vp_BFu31i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, hide_ull(1LL<<30), "aBFu0c_Vp_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu31i, aBFu0c_Vp_BFu31i)
//============================================================================



static void Test_aBFu0c_Vp_BFu31ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu31ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu31ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu31ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu31ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, 1, "aBFu0c_Vp_BFu31ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 31, hide_ull(1LL<<30), "aBFu0c_Vp_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu31ll, aBFu0c_Vp_BFu31ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu32i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu32i");
    static STRUCT_IF_C aBFu0c_Vp_BFu32i lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu32i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu32i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, 1, "aBFu0c_Vp_BFu32i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, hide_ull(1LL<<31), "aBFu0c_Vp_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu32i, aBFu0c_Vp_BFu32i)
//============================================================================



static void Test_aBFu0c_Vp_BFu32ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu32ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu32ll lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu32ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu32ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, 1, "aBFu0c_Vp_BFu32ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 32, hide_ull(1LL<<31), "aBFu0c_Vp_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu32ll, aBFu0c_Vp_BFu32ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu33()
{
  {
    init_simple_test("aBFu0c_Vp_BFu33");
    static STRUCT_IF_C aBFu0c_Vp_BFu33 lv;
    check2(sizeof(lv), ABISELECT(13,9), "sizeof(aBFu0c_Vp_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu33)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu33.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 33, 1, "aBFu0c_Vp_BFu33");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 33, hide_ull(1LL<<32), "aBFu0c_Vp_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu33, aBFu0c_Vp_BFu33)
//============================================================================



static void Test_aBFu0c_Vp_BFu7c()
{
  {
    init_simple_test("aBFu0c_Vp_BFu7c");
    static STRUCT_IF_C aBFu0c_Vp_BFu7c lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu7c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu7c.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Vp_BFu7c");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Vp_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu7c, aBFu0c_Vp_BFu7c)
//============================================================================



static void Test_aBFu0c_Vp_BFu7i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu7i");
    static STRUCT_IF_C aBFu0c_Vp_BFu7i lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu7i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu7i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Vp_BFu7i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Vp_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu7i, aBFu0c_Vp_BFu7i)
//============================================================================



static void Test_aBFu0c_Vp_BFu7ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu7ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu7ll lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu7ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu7ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Vp_BFu7ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Vp_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu7ll, aBFu0c_Vp_BFu7ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu7s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu7s");
    static STRUCT_IF_C aBFu0c_Vp_BFu7s lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu7s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu7s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, 1, "aBFu0c_Vp_BFu7s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 7, hide_ull(1LL<<6), "aBFu0c_Vp_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu7s, aBFu0c_Vp_BFu7s)
//============================================================================



static void Test_aBFu0c_Vp_BFu8c()
{
  {
    init_simple_test("aBFu0c_Vp_BFu8c");
    static STRUCT_IF_C aBFu0c_Vp_BFu8c lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu8c)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu8c.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Vp_BFu8c");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Vp_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu8c, aBFu0c_Vp_BFu8c)
//============================================================================



static void Test_aBFu0c_Vp_BFu8i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu8i");
    static STRUCT_IF_C aBFu0c_Vp_BFu8i lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu8i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu8i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Vp_BFu8i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Vp_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu8i, aBFu0c_Vp_BFu8i)
//============================================================================



static void Test_aBFu0c_Vp_BFu8ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu8ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu8ll lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu8ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu8ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Vp_BFu8ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Vp_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu8ll, aBFu0c_Vp_BFu8ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu8s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu8s");
    static STRUCT_IF_C aBFu0c_Vp_BFu8s lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu8s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu8s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, 1, "aBFu0c_Vp_BFu8s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 8, hide_ull(1LL<<7), "aBFu0c_Vp_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu8s, aBFu0c_Vp_BFu8s)
//============================================================================



static void Test_aBFu0c_Vp_BFu9i()
{
  {
    init_simple_test("aBFu0c_Vp_BFu9i");
    static STRUCT_IF_C aBFu0c_Vp_BFu9i lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu9i)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu9i.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, 1, "aBFu0c_Vp_BFu9i");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, hide_ull(1LL<<8), "aBFu0c_Vp_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu9i, aBFu0c_Vp_BFu9i)
//============================================================================



static void Test_aBFu0c_Vp_BFu9ll()
{
  {
    init_simple_test("aBFu0c_Vp_BFu9ll");
    static STRUCT_IF_C aBFu0c_Vp_BFu9ll lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu9ll)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu9ll.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, 1, "aBFu0c_Vp_BFu9ll");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, hide_ull(1LL<<8), "aBFu0c_Vp_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu9ll, aBFu0c_Vp_BFu9ll)
//============================================================================



static void Test_aBFu0c_Vp_BFu9s()
{
  {
    init_simple_test("aBFu0c_Vp_BFu9s");
    static STRUCT_IF_C aBFu0c_Vp_BFu9s lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_BFu9s)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_BFu9s.v1");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, 1, "aBFu0c_Vp_BFu9s");
    set_bf_and_test(lv, v2, ABISELECT(8,4), 0, 9, hide_ull(1LL<<8), "aBFu0c_Vp_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_BFu9s, aBFu0c_Vp_BFu9s)
//============================================================================



static void Test_aBFu0c_Vp_C()
{
  {
    init_simple_test("aBFu0c_Vp_C");
    static STRUCT_IF_C aBFu0c_Vp_C lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_C)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_C.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_C, aBFu0c_Vp_C)
//============================================================================



static void Test_aBFu0c_Vp_D()
{
  {
    init_simple_test("aBFu0c_Vp_D");
    static STRUCT_IF_C aBFu0c_Vp_D lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Vp_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_D)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_D.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_D, aBFu0c_Vp_D)
//============================================================================



static void Test_aBFu0c_Vp_F()
{
  {
    init_simple_test("aBFu0c_Vp_F");
    static STRUCT_IF_C aBFu0c_Vp_F lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_F)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_F.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_F, aBFu0c_Vp_F)
//============================================================================



static void Test_aBFu0c_Vp_I()
{
  {
    init_simple_test("aBFu0c_Vp_I");
    static STRUCT_IF_C aBFu0c_Vp_I lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_I)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_I.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_I, aBFu0c_Vp_I)
//============================================================================



static void Test_aBFu0c_Vp_Ip()
{
  {
    init_simple_test("aBFu0c_Vp_Ip");
    static STRUCT_IF_C aBFu0c_Vp_Ip lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(aBFu0c_Vp_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_Ip.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_Ip, aBFu0c_Vp_Ip)
//============================================================================



static void Test_aBFu0c_Vp_L()
{
  {
    init_simple_test("aBFu0c_Vp_L");
    static STRUCT_IF_C aBFu0c_Vp_L lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Vp_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_L)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_L.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_L, aBFu0c_Vp_L)
//============================================================================



static void Test_aBFu0c_Vp_S()
{
  {
    init_simple_test("aBFu0c_Vp_S");
    static STRUCT_IF_C aBFu0c_Vp_S lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_S)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_S.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_S, aBFu0c_Vp_S)
//============================================================================



static void Test_aBFu0c_Vp_Uc()
{
  {
    init_simple_test("aBFu0c_Vp_Uc");
    static STRUCT_IF_C aBFu0c_Vp_Uc lv;
    check2(sizeof(lv), ABISELECT(9,5), "sizeof(aBFu0c_Vp_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_Uc.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_Uc, aBFu0c_Vp_Uc)
//============================================================================



static void Test_aBFu0c_Vp_Ui()
{
  {
    init_simple_test("aBFu0c_Vp_Ui");
    static STRUCT_IF_C aBFu0c_Vp_Ui lv;
    check2(sizeof(lv), ABISELECT(12,8), "sizeof(aBFu0c_Vp_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_Ui.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_Ui, aBFu0c_Vp_Ui)
//============================================================================



static void Test_aBFu0c_Vp_Ul()
{
  {
    init_simple_test("aBFu0c_Vp_Ul");
    static STRUCT_IF_C aBFu0c_Vp_Ul lv;
    check2(sizeof(lv), ABISELECT(16,12), "sizeof(aBFu0c_Vp_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_Ul.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_Ul, aBFu0c_Vp_Ul)
//============================================================================



static void Test_aBFu0c_Vp_Us()
{
  {
    init_simple_test("aBFu0c_Vp_Us");
    static STRUCT_IF_C aBFu0c_Vp_Us lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0c_Vp_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_Us)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_Us.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_Us, aBFu0c_Vp_Us)
//============================================================================



static void Test_aBFu0c_Vp_Vp()
{
  {
    init_simple_test("aBFu0c_Vp_Vp");
    static STRUCT_IF_C aBFu0c_Vp_Vp lv;
    check2(sizeof(lv), ABISELECT(16,8), "sizeof(aBFu0c_Vp_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0c_Vp_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0c_Vp_Vp.v1");
    check_field_offset(lv, v2, ABISELECT(8,4), "aBFu0c_Vp_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0c_Vp_Vp, aBFu0c_Vp_Vp)
//============================================================================



static void Test_aBFu0i()
{
  {
    init_simple_test("aBFu0i");
    static STRUCT_IF_C aBFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i, aBFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c, aBFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c, aBFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFs0c, aBFu0i_BFs0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFs0i, aBFu0i_BFs0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFs0ll, aBFu0i_BFs0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFs0s, aBFu0i_BFs0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFu0c, aBFu0i_BFs0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFu0i, aBFu0i_BFs0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFu0ll, aBFu0i_BFs0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0c_BFu0s, aBFu0i_BFs0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i, aBFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFs0c, aBFu0i_BFs0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFs0i, aBFu0i_BFs0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFs0ll, aBFu0i_BFs0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFs0s, aBFu0i_BFs0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFu0c, aBFu0i_BFs0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFu0i, aBFu0i_BFs0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFu0ll, aBFu0i_BFs0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0i_BFu0s, aBFu0i_BFs0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll, aBFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFs0c, aBFu0i_BFs0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFs0i, aBFu0i_BFs0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFs0ll, aBFu0i_BFs0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFs0s, aBFu0i_BFs0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFu0c, aBFu0i_BFs0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFu0i, aBFu0i_BFs0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFu0ll, aBFu0i_BFs0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0ll_BFu0s, aBFu0i_BFs0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s, aBFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFs0c, aBFu0i_BFs0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFs0i, aBFu0i_BFs0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFs0ll, aBFu0i_BFs0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFs0s, aBFu0i_BFs0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFu0c, aBFu0i_BFs0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFu0i, aBFu0i_BFs0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFu0ll, aBFu0i_BFs0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFs0s_BFu0s, aBFu0i_BFs0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c, aBFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFs0c, aBFu0i_BFs0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFs0i, aBFu0i_BFs0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFs0ll, aBFu0i_BFs0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFs0s, aBFu0i_BFs0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFu0c, aBFu0i_BFs0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFu0i, aBFu0i_BFs0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFu0ll, aBFu0i_BFs0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0c_BFu0s, aBFu0i_BFs0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i, aBFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFs0c, aBFu0i_BFs0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFs0i, aBFu0i_BFs0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFs0ll, aBFu0i_BFs0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFs0s, aBFu0i_BFs0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFu0c, aBFu0i_BFs0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFu0i, aBFu0i_BFs0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFu0ll, aBFu0i_BFs0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0i_BFu0s, aBFu0i_BFs0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll, aBFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFs0c, aBFu0i_BFs0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFs0i, aBFu0i_BFs0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFs0ll, aBFu0i_BFs0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFs0s, aBFu0i_BFs0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFu0c, aBFu0i_BFs0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFu0i, aBFu0i_BFs0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFu0ll, aBFu0i_BFs0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0ll_BFu0s, aBFu0i_BFs0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s, aBFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFs0c, aBFu0i_BFs0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFs0i, aBFu0i_BFs0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFs0ll, aBFu0i_BFs0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFs0s, aBFu0i_BFs0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFu0c, aBFu0i_BFs0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFu0i, aBFu0i_BFs0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFu0ll, aBFu0i_BFs0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0c_BFu0s_BFu0s, aBFu0i_BFs0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i, aBFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c, aBFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFs0c, aBFu0i_BFs0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFs0i, aBFu0i_BFs0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFs0ll, aBFu0i_BFs0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFs0s, aBFu0i_BFs0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFu0c, aBFu0i_BFs0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFu0i, aBFu0i_BFs0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFu0ll, aBFu0i_BFs0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0c_BFu0s, aBFu0i_BFs0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i, aBFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFs0c, aBFu0i_BFs0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFs0i, aBFu0i_BFs0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFs0ll, aBFu0i_BFs0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFs0s, aBFu0i_BFs0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFu0c, aBFu0i_BFs0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFu0i, aBFu0i_BFs0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFu0ll, aBFu0i_BFs0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0i_BFu0s, aBFu0i_BFs0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll, aBFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFs0c, aBFu0i_BFs0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFs0i, aBFu0i_BFs0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFs0ll, aBFu0i_BFs0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFs0s, aBFu0i_BFs0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFu0c, aBFu0i_BFs0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFu0i, aBFu0i_BFs0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFu0ll, aBFu0i_BFs0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0ll_BFu0s, aBFu0i_BFs0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s, aBFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFs0c, aBFu0i_BFs0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFs0i, aBFu0i_BFs0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFs0ll, aBFu0i_BFs0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFs0s, aBFu0i_BFs0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFu0c, aBFu0i_BFs0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFu0i, aBFu0i_BFs0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFu0ll, aBFu0i_BFs0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFs0s_BFu0s, aBFu0i_BFs0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c, aBFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFs0c, aBFu0i_BFs0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFs0i, aBFu0i_BFs0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFs0ll, aBFu0i_BFs0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFs0s, aBFu0i_BFs0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFu0c, aBFu0i_BFs0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFu0i, aBFu0i_BFs0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFu0ll, aBFu0i_BFs0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0c_BFu0s, aBFu0i_BFs0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i, aBFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFs0c, aBFu0i_BFs0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFs0i, aBFu0i_BFs0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFs0ll, aBFu0i_BFs0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFs0s, aBFu0i_BFs0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFu0c, aBFu0i_BFs0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFu0i, aBFu0i_BFs0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFu0ll, aBFu0i_BFs0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0i_BFu0s, aBFu0i_BFs0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll, aBFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFs0c, aBFu0i_BFs0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFs0i, aBFu0i_BFs0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFs0ll, aBFu0i_BFs0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFs0s, aBFu0i_BFs0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFu0c, aBFu0i_BFs0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFu0i, aBFu0i_BFs0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFu0ll, aBFu0i_BFs0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0ll_BFu0s, aBFu0i_BFs0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s, aBFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFs0c, aBFu0i_BFs0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFs0i, aBFu0i_BFs0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFs0ll, aBFu0i_BFs0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFs0s, aBFu0i_BFs0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFu0c, aBFu0i_BFs0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFu0i, aBFu0i_BFs0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFu0ll, aBFu0i_BFs0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0i_BFu0s_BFu0s, aBFu0i_BFs0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll, aBFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c, aBFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFs0c, aBFu0i_BFs0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFs0i, aBFu0i_BFs0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFs0ll, aBFu0i_BFs0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFs0s, aBFu0i_BFs0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFu0c, aBFu0i_BFs0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFu0i, aBFu0i_BFs0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFu0ll, aBFu0i_BFs0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0c_BFu0s, aBFu0i_BFs0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i, aBFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFs0c, aBFu0i_BFs0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFs0i, aBFu0i_BFs0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFs0ll, aBFu0i_BFs0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFs0s, aBFu0i_BFs0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFu0c, aBFu0i_BFs0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFu0i, aBFu0i_BFs0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFu0ll, aBFu0i_BFs0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0i_BFu0s, aBFu0i_BFs0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll, aBFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFs0c, aBFu0i_BFs0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFs0i, aBFu0i_BFs0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFs0ll, aBFu0i_BFs0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFs0s, aBFu0i_BFs0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFu0c, aBFu0i_BFs0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFu0i, aBFu0i_BFs0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFu0ll, aBFu0i_BFs0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0ll_BFu0s, aBFu0i_BFs0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s, aBFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFs0c, aBFu0i_BFs0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFs0i, aBFu0i_BFs0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFs0ll, aBFu0i_BFs0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFs0s, aBFu0i_BFs0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFu0c, aBFu0i_BFs0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFu0i, aBFu0i_BFs0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFu0ll, aBFu0i_BFs0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFs0s_BFu0s, aBFu0i_BFs0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c, aBFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFs0c, aBFu0i_BFs0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFs0i, aBFu0i_BFs0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFs0ll, aBFu0i_BFs0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFs0s, aBFu0i_BFs0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFu0c, aBFu0i_BFs0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFu0i, aBFu0i_BFs0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFu0ll, aBFu0i_BFs0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0c_BFu0s, aBFu0i_BFs0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i, aBFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFs0c, aBFu0i_BFs0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFs0i, aBFu0i_BFs0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFs0ll, aBFu0i_BFs0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFs0s, aBFu0i_BFs0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFu0c, aBFu0i_BFs0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFu0i, aBFu0i_BFs0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFu0ll, aBFu0i_BFs0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0i_BFu0s, aBFu0i_BFs0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll, aBFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFs0c, aBFu0i_BFs0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFs0i, aBFu0i_BFs0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFs0ll, aBFu0i_BFs0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFs0s, aBFu0i_BFs0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFu0c, aBFu0i_BFs0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFu0i, aBFu0i_BFs0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFu0ll, aBFu0i_BFs0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0ll_BFu0s, aBFu0i_BFs0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s, aBFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFs0c, aBFu0i_BFs0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFs0i, aBFu0i_BFs0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFs0ll, aBFu0i_BFs0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFs0s, aBFu0i_BFs0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFu0c, aBFu0i_BFs0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFu0i, aBFu0i_BFs0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFu0ll, aBFu0i_BFs0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0ll_BFu0s_BFu0s, aBFu0i_BFs0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s, aBFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c, aBFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFs0c, aBFu0i_BFs0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFs0i, aBFu0i_BFs0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFs0ll, aBFu0i_BFs0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFs0s, aBFu0i_BFs0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFu0c, aBFu0i_BFs0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFu0i, aBFu0i_BFs0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFu0ll, aBFu0i_BFs0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0c_BFu0s, aBFu0i_BFs0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i, aBFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFs0c, aBFu0i_BFs0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFs0i, aBFu0i_BFs0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFs0ll, aBFu0i_BFs0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFs0s, aBFu0i_BFs0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFu0c, aBFu0i_BFs0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFu0i, aBFu0i_BFs0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFu0ll, aBFu0i_BFs0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0i_BFu0s, aBFu0i_BFs0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll, aBFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFs0c, aBFu0i_BFs0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFs0i, aBFu0i_BFs0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFs0ll, aBFu0i_BFs0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFs0s, aBFu0i_BFs0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFu0c, aBFu0i_BFs0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFu0i, aBFu0i_BFs0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFu0ll, aBFu0i_BFs0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0ll_BFu0s, aBFu0i_BFs0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s, aBFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFs0c, aBFu0i_BFs0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFs0i, aBFu0i_BFs0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFs0ll, aBFu0i_BFs0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFs0s, aBFu0i_BFs0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFu0c, aBFu0i_BFs0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFu0i, aBFu0i_BFs0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFu0ll, aBFu0i_BFs0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFs0s_BFu0s, aBFu0i_BFs0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c, aBFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFs0c, aBFu0i_BFs0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFs0i, aBFu0i_BFs0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFs0ll, aBFu0i_BFs0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFs0s, aBFu0i_BFs0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFu0c, aBFu0i_BFs0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFu0i, aBFu0i_BFs0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFu0ll, aBFu0i_BFs0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0c_BFu0s, aBFu0i_BFs0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i, aBFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFs0c, aBFu0i_BFs0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFs0i, aBFu0i_BFs0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFs0ll, aBFu0i_BFs0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFs0s, aBFu0i_BFs0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFu0c, aBFu0i_BFs0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFu0i, aBFu0i_BFs0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFu0ll, aBFu0i_BFs0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0i_BFu0s, aBFu0i_BFs0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll, aBFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFs0c, aBFu0i_BFs0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFs0i, aBFu0i_BFs0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFs0ll, aBFu0i_BFs0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFs0s, aBFu0i_BFs0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFu0c, aBFu0i_BFs0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFu0i, aBFu0i_BFs0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFu0ll, aBFu0i_BFs0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0ll_BFu0s, aBFu0i_BFs0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s, aBFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFs0c, aBFu0i_BFs0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFs0i, aBFu0i_BFs0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFs0ll, aBFu0i_BFs0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFs0s, aBFu0i_BFs0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFu0c, aBFu0i_BFs0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFu0i, aBFu0i_BFs0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFu0ll, aBFu0i_BFs0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFs0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFs0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFs0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFs0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFs0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFs0s_BFu0s_BFu0s, aBFu0i_BFs0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c, aBFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c, aBFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFs0c, aBFu0i_BFu0c_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFs0i, aBFu0i_BFu0c_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFs0ll, aBFu0i_BFu0c_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFs0s, aBFu0i_BFu0c_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFu0c, aBFu0i_BFu0c_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFu0i, aBFu0i_BFu0c_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFu0ll, aBFu0i_BFu0c_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0c_BFu0s, aBFu0i_BFu0c_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i, aBFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFs0c, aBFu0i_BFu0c_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFs0i, aBFu0i_BFu0c_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFs0ll, aBFu0i_BFu0c_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFs0s, aBFu0i_BFu0c_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFu0c, aBFu0i_BFu0c_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFu0i, aBFu0i_BFu0c_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFu0ll, aBFu0i_BFu0c_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0i_BFu0s, aBFu0i_BFu0c_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll, aBFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFs0c, aBFu0i_BFu0c_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFs0i, aBFu0i_BFu0c_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFs0ll, aBFu0i_BFu0c_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFs0s, aBFu0i_BFu0c_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFu0c, aBFu0i_BFu0c_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFu0i, aBFu0i_BFu0c_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFu0ll, aBFu0i_BFu0c_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0ll_BFu0s, aBFu0i_BFu0c_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s, aBFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFs0c, aBFu0i_BFu0c_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFs0i, aBFu0i_BFu0c_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFs0ll, aBFu0i_BFu0c_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFs0s, aBFu0i_BFu0c_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFu0c, aBFu0i_BFu0c_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFu0i, aBFu0i_BFu0c_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFu0ll, aBFu0i_BFu0c_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFs0s_BFu0s, aBFu0i_BFu0c_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c, aBFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFs0c, aBFu0i_BFu0c_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFs0i, aBFu0i_BFu0c_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFs0ll, aBFu0i_BFu0c_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFs0s, aBFu0i_BFu0c_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFu0c, aBFu0i_BFu0c_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFu0i, aBFu0i_BFu0c_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFu0ll, aBFu0i_BFu0c_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0c_BFu0s, aBFu0i_BFu0c_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i, aBFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFs0c, aBFu0i_BFu0c_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFs0i, aBFu0i_BFu0c_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFs0ll, aBFu0i_BFu0c_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFs0s, aBFu0i_BFu0c_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFu0c, aBFu0i_BFu0c_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFu0i, aBFu0i_BFu0c_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFu0ll, aBFu0i_BFu0c_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0i_BFu0s, aBFu0i_BFu0c_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll, aBFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFs0c, aBFu0i_BFu0c_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFs0i, aBFu0i_BFu0c_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFs0ll, aBFu0i_BFu0c_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFs0s, aBFu0i_BFu0c_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFu0c, aBFu0i_BFu0c_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFu0i, aBFu0i_BFu0c_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFu0ll, aBFu0i_BFu0c_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0ll_BFu0s, aBFu0i_BFu0c_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s, aBFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFs0c, aBFu0i_BFu0c_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFs0i, aBFu0i_BFu0c_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFs0ll, aBFu0i_BFu0c_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFs0s, aBFu0i_BFu0c_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFu0c, aBFu0i_BFu0c_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFu0i, aBFu0i_BFu0c_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFu0ll, aBFu0i_BFu0c_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0c_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu0s_BFu0s, aBFu0i_BFu0c_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0c_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu15i, aBFu0i_BFu0c_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0c_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu15ll, aBFu0i_BFu0c_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0c_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu15s, aBFu0i_BFu0c_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0c_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu16i, aBFu0i_BFu0c_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0c_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu16ll, aBFu0i_BFu0c_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0c_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu16s, aBFu0i_BFu0c_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0c_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu17i, aBFu0i_BFu0c_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0c_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu17ll, aBFu0i_BFu0c_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu1c, aBFu0i_BFu0c_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0c_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu1i, aBFu0i_BFu0c_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0c_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu1ll, aBFu0i_BFu0c_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0c_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu1s, aBFu0i_BFu0c_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0c_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0c_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu31i, aBFu0i_BFu0c_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0c_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0c_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu31ll, aBFu0i_BFu0c_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0c_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0c_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu32i, aBFu0i_BFu0c_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0c_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0c_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu32ll, aBFu0i_BFu0c_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu33");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu0c_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0i_BFu0c_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu0c_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu33, aBFu0i_BFu0c_BFu33)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0c_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0c_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu7c, aBFu0i_BFu0c_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0c_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0c_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu7i, aBFu0i_BFu0c_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0c_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0c_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu7ll, aBFu0i_BFu0c_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0c_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0c_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu7s, aBFu0i_BFu0c_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0c_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0c_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu8c, aBFu0i_BFu0c_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0c_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0c_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu8i, aBFu0i_BFu0c_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0c_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0c_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu8ll, aBFu0i_BFu0c_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0c_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0c_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu8s, aBFu0i_BFu0c_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0c_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0c_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu9i, aBFu0i_BFu0c_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0c_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0c_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu9ll, aBFu0i_BFu0c_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu0c_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu0c_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu0c_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0c_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0c_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_BFu9s, aBFu0i_BFu0c_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu0c_C()
{
  {
    init_simple_test("aBFu0i_BFu0c_C");
    static STRUCT_IF_C aBFu0i_BFu0c_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_C)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_C, aBFu0i_BFu0c_C)
//============================================================================



static void Test_aBFu0i_BFu0c_D()
{
  {
    init_simple_test("aBFu0i_BFu0c_D");
    static STRUCT_IF_C aBFu0i_BFu0c_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0c_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_D)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_D, aBFu0i_BFu0c_D)
//============================================================================



static void Test_aBFu0i_BFu0c_F()
{
  {
    init_simple_test("aBFu0i_BFu0c_F");
    static STRUCT_IF_C aBFu0i_BFu0c_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_F)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_F, aBFu0i_BFu0c_F)
//============================================================================



static void Test_aBFu0i_BFu0c_I()
{
  {
    init_simple_test("aBFu0i_BFu0c_I");
    static STRUCT_IF_C aBFu0i_BFu0c_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_I)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_I, aBFu0i_BFu0c_I)
//============================================================================



static void Test_aBFu0i_BFu0c_Ip()
{
  {
    init_simple_test("aBFu0i_BFu0c_Ip");
    static STRUCT_IF_C aBFu0i_BFu0c_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0c_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_Ip, aBFu0i_BFu0c_Ip)
//============================================================================



static void Test_aBFu0i_BFu0c_L()
{
  {
    init_simple_test("aBFu0i_BFu0c_L");
    static STRUCT_IF_C aBFu0i_BFu0c_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0c_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_L)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_L, aBFu0i_BFu0c_L)
//============================================================================



static void Test_aBFu0i_BFu0c_S()
{
  {
    init_simple_test("aBFu0i_BFu0c_S");
    static STRUCT_IF_C aBFu0i_BFu0c_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_S)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_S, aBFu0i_BFu0c_S)
//============================================================================



static void Test_aBFu0i_BFu0c_Uc()
{
  {
    init_simple_test("aBFu0i_BFu0c_Uc");
    static STRUCT_IF_C aBFu0i_BFu0c_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0c_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_Uc, aBFu0i_BFu0c_Uc)
//============================================================================



static void Test_aBFu0i_BFu0c_Ui()
{
  {
    init_simple_test("aBFu0i_BFu0c_Ui");
    static STRUCT_IF_C aBFu0i_BFu0c_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0c_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_Ui, aBFu0i_BFu0c_Ui)
//============================================================================



static void Test_aBFu0i_BFu0c_Ul()
{
  {
    init_simple_test("aBFu0i_BFu0c_Ul");
    static STRUCT_IF_C aBFu0i_BFu0c_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0c_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_Ul, aBFu0i_BFu0c_Ul)
//============================================================================



static void Test_aBFu0i_BFu0c_Us()
{
  {
    init_simple_test("aBFu0i_BFu0c_Us");
    static STRUCT_IF_C aBFu0i_BFu0c_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0c_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_Us)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_Us, aBFu0i_BFu0c_Us)
//============================================================================



static void Test_aBFu0i_BFu0c_Vp()
{
  {
    init_simple_test("aBFu0i_BFu0c_Vp");
    static STRUCT_IF_C aBFu0i_BFu0c_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0c_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0c_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0c_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0c_Vp, aBFu0i_BFu0c_Vp)
//============================================================================



static void Test_aBFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i, aBFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c, aBFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFs0c, aBFu0i_BFu0i_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFs0i, aBFu0i_BFu0i_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFs0ll, aBFu0i_BFu0i_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFs0s, aBFu0i_BFu0i_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFu0c, aBFu0i_BFu0i_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFu0i, aBFu0i_BFu0i_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFu0ll, aBFu0i_BFu0i_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0c_BFu0s, aBFu0i_BFu0i_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i, aBFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFs0c, aBFu0i_BFu0i_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFs0i, aBFu0i_BFu0i_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFs0ll, aBFu0i_BFu0i_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFs0s, aBFu0i_BFu0i_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFu0c, aBFu0i_BFu0i_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFu0i, aBFu0i_BFu0i_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFu0ll, aBFu0i_BFu0i_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0i_BFu0s, aBFu0i_BFu0i_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll, aBFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFs0c, aBFu0i_BFu0i_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFs0i, aBFu0i_BFu0i_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFs0ll, aBFu0i_BFu0i_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFs0s, aBFu0i_BFu0i_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFu0c, aBFu0i_BFu0i_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFu0i, aBFu0i_BFu0i_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFu0ll, aBFu0i_BFu0i_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0ll_BFu0s, aBFu0i_BFu0i_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s, aBFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFs0c, aBFu0i_BFu0i_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFs0i, aBFu0i_BFu0i_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFs0ll, aBFu0i_BFu0i_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFs0s, aBFu0i_BFu0i_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFu0c, aBFu0i_BFu0i_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFu0i, aBFu0i_BFu0i_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFu0ll, aBFu0i_BFu0i_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFs0s_BFu0s, aBFu0i_BFu0i_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c, aBFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFs0c, aBFu0i_BFu0i_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFs0i, aBFu0i_BFu0i_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFs0ll, aBFu0i_BFu0i_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFs0s, aBFu0i_BFu0i_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFu0c, aBFu0i_BFu0i_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFu0i, aBFu0i_BFu0i_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFu0ll, aBFu0i_BFu0i_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0c_BFu0s, aBFu0i_BFu0i_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i, aBFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFs0c, aBFu0i_BFu0i_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFs0i, aBFu0i_BFu0i_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFs0ll, aBFu0i_BFu0i_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFs0s, aBFu0i_BFu0i_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFu0c, aBFu0i_BFu0i_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFu0i, aBFu0i_BFu0i_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFu0ll, aBFu0i_BFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0i_BFu0s, aBFu0i_BFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll, aBFu0i_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFs0c, aBFu0i_BFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFs0i, aBFu0i_BFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFs0ll, aBFu0i_BFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFs0s, aBFu0i_BFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFu0c, aBFu0i_BFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFu0i, aBFu0i_BFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFu0ll, aBFu0i_BFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0ll_BFu0s, aBFu0i_BFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s, aBFu0i_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFs0c, aBFu0i_BFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFs0i, aBFu0i_BFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFs0ll, aBFu0i_BFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFs0s, aBFu0i_BFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFu0c, aBFu0i_BFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFu0i, aBFu0i_BFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFu0ll, aBFu0i_BFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu0s_BFu0s, aBFu0i_BFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu15i, aBFu0i_BFu0i_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu15ll, aBFu0i_BFu0i_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu15s, aBFu0i_BFu0i_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu16i, aBFu0i_BFu0i_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu16ll, aBFu0i_BFu0i_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu16s, aBFu0i_BFu0i_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu17i, aBFu0i_BFu0i_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu17ll, aBFu0i_BFu0i_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu1c, aBFu0i_BFu0i_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu1i, aBFu0i_BFu0i_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu1ll, aBFu0i_BFu0i_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu1s, aBFu0i_BFu0i_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu31i, aBFu0i_BFu0i_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu31ll, aBFu0i_BFu0i_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu32i, aBFu0i_BFu0i_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu32ll, aBFu0i_BFu0i_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu33");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu0i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0i_BFu0i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu0i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu33, aBFu0i_BFu0i_BFu33)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu7c, aBFu0i_BFu0i_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu7i, aBFu0i_BFu0i_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu7ll, aBFu0i_BFu0i_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu7s, aBFu0i_BFu0i_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu8c, aBFu0i_BFu0i_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu8i, aBFu0i_BFu0i_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu8ll, aBFu0i_BFu0i_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu8s, aBFu0i_BFu0i_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu9i, aBFu0i_BFu0i_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu9ll, aBFu0i_BFu0i_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu0i_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu0i_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu0i_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_BFu9s, aBFu0i_BFu0i_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu0i_C()
{
  {
    init_simple_test("aBFu0i_BFu0i_C");
    static STRUCT_IF_C aBFu0i_BFu0i_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_C)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_C, aBFu0i_BFu0i_C)
//============================================================================



static void Test_aBFu0i_BFu0i_D()
{
  {
    init_simple_test("aBFu0i_BFu0i_D");
    static STRUCT_IF_C aBFu0i_BFu0i_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_D)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_D, aBFu0i_BFu0i_D)
//============================================================================



static void Test_aBFu0i_BFu0i_F()
{
  {
    init_simple_test("aBFu0i_BFu0i_F");
    static STRUCT_IF_C aBFu0i_BFu0i_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_F)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_F, aBFu0i_BFu0i_F)
//============================================================================



static void Test_aBFu0i_BFu0i_I()
{
  {
    init_simple_test("aBFu0i_BFu0i_I");
    static STRUCT_IF_C aBFu0i_BFu0i_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_I)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_I, aBFu0i_BFu0i_I)
//============================================================================



static void Test_aBFu0i_BFu0i_Ip()
{
  {
    init_simple_test("aBFu0i_BFu0i_Ip");
    static STRUCT_IF_C aBFu0i_BFu0i_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_Ip, aBFu0i_BFu0i_Ip)
//============================================================================



static void Test_aBFu0i_BFu0i_L()
{
  {
    init_simple_test("aBFu0i_BFu0i_L");
    static STRUCT_IF_C aBFu0i_BFu0i_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_L)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_L, aBFu0i_BFu0i_L)
//============================================================================



static void Test_aBFu0i_BFu0i_S()
{
  {
    init_simple_test("aBFu0i_BFu0i_S");
    static STRUCT_IF_C aBFu0i_BFu0i_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_S)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_S, aBFu0i_BFu0i_S)
//============================================================================



static void Test_aBFu0i_BFu0i_Uc()
{
  {
    init_simple_test("aBFu0i_BFu0i_Uc");
    static STRUCT_IF_C aBFu0i_BFu0i_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_Uc, aBFu0i_BFu0i_Uc)
//============================================================================



static void Test_aBFu0i_BFu0i_Ui()
{
  {
    init_simple_test("aBFu0i_BFu0i_Ui");
    static STRUCT_IF_C aBFu0i_BFu0i_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_Ui, aBFu0i_BFu0i_Ui)
//============================================================================



static void Test_aBFu0i_BFu0i_Ul()
{
  {
    init_simple_test("aBFu0i_BFu0i_Ul");
    static STRUCT_IF_C aBFu0i_BFu0i_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_Ul, aBFu0i_BFu0i_Ul)
//============================================================================



static void Test_aBFu0i_BFu0i_Us()
{
  {
    init_simple_test("aBFu0i_BFu0i_Us");
    static STRUCT_IF_C aBFu0i_BFu0i_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_Us)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_Us, aBFu0i_BFu0i_Us)
//============================================================================



static void Test_aBFu0i_BFu0i_Vp()
{
  {
    init_simple_test("aBFu0i_BFu0i_Vp");
    static STRUCT_IF_C aBFu0i_BFu0i_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0i_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0i_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0i_Vp, aBFu0i_BFu0i_Vp)
//============================================================================



static void Test_aBFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll, aBFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c, aBFu0i_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFs0c, aBFu0i_BFu0ll_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFs0i, aBFu0i_BFu0ll_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFs0ll, aBFu0i_BFu0ll_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFs0s, aBFu0i_BFu0ll_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFu0c, aBFu0i_BFu0ll_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFu0i, aBFu0i_BFu0ll_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFu0ll, aBFu0i_BFu0ll_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0c_BFu0s, aBFu0i_BFu0ll_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i, aBFu0i_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFs0c, aBFu0i_BFu0ll_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFs0i, aBFu0i_BFu0ll_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFs0ll, aBFu0i_BFu0ll_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFs0s, aBFu0i_BFu0ll_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFu0c, aBFu0i_BFu0ll_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFu0i, aBFu0i_BFu0ll_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFu0ll, aBFu0i_BFu0ll_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0i_BFu0s, aBFu0i_BFu0ll_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll, aBFu0i_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFs0c, aBFu0i_BFu0ll_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFs0i, aBFu0i_BFu0ll_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFs0ll, aBFu0i_BFu0ll_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFs0s, aBFu0i_BFu0ll_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFu0c, aBFu0i_BFu0ll_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFu0i, aBFu0i_BFu0ll_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFu0ll, aBFu0i_BFu0ll_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0ll_BFu0s, aBFu0i_BFu0ll_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s, aBFu0i_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFs0c, aBFu0i_BFu0ll_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFs0i, aBFu0i_BFu0ll_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFs0ll, aBFu0i_BFu0ll_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFs0s, aBFu0i_BFu0ll_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFu0c, aBFu0i_BFu0ll_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFu0i, aBFu0i_BFu0ll_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFu0ll, aBFu0i_BFu0ll_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFs0s_BFu0s, aBFu0i_BFu0ll_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c, aBFu0i_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFs0c, aBFu0i_BFu0ll_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFs0i, aBFu0i_BFu0ll_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFs0ll, aBFu0i_BFu0ll_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFs0s, aBFu0i_BFu0ll_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFu0c, aBFu0i_BFu0ll_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFu0i, aBFu0i_BFu0ll_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFu0ll, aBFu0i_BFu0ll_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0c_BFu0s, aBFu0i_BFu0ll_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i, aBFu0i_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFs0c, aBFu0i_BFu0ll_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFs0i, aBFu0i_BFu0ll_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFs0ll, aBFu0i_BFu0ll_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFs0s, aBFu0i_BFu0ll_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFu0c, aBFu0i_BFu0ll_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFu0i, aBFu0i_BFu0ll_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFu0ll, aBFu0i_BFu0ll_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0i_BFu0s, aBFu0i_BFu0ll_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll, aBFu0i_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFs0c, aBFu0i_BFu0ll_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFs0i, aBFu0i_BFu0ll_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFs0ll, aBFu0i_BFu0ll_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFs0s, aBFu0i_BFu0ll_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFu0c, aBFu0i_BFu0ll_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFu0i, aBFu0i_BFu0ll_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFu0ll, aBFu0i_BFu0ll_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0ll_BFu0s, aBFu0i_BFu0ll_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s, aBFu0i_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFs0c, aBFu0i_BFu0ll_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFs0i, aBFu0i_BFu0ll_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFs0ll, aBFu0i_BFu0ll_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFs0s, aBFu0i_BFu0ll_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFu0c, aBFu0i_BFu0ll_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFu0i, aBFu0i_BFu0ll_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFu0ll, aBFu0i_BFu0ll_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0ll_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu0s_BFu0s, aBFu0i_BFu0ll_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu15i, aBFu0i_BFu0ll_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu15ll, aBFu0i_BFu0ll_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu15s, aBFu0i_BFu0ll_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu16i, aBFu0i_BFu0ll_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu16ll, aBFu0i_BFu0ll_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu16s, aBFu0i_BFu0ll_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu17i, aBFu0i_BFu0ll_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu17ll, aBFu0i_BFu0ll_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu1c, aBFu0i_BFu0ll_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu1i, aBFu0i_BFu0ll_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu1ll, aBFu0i_BFu0ll_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu1s, aBFu0i_BFu0ll_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu31i, aBFu0i_BFu0ll_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu31ll, aBFu0i_BFu0ll_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu32i, aBFu0i_BFu0ll_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu32ll, aBFu0i_BFu0ll_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu33");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu0ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0i_BFu0ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu0ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu33, aBFu0i_BFu0ll_BFu33)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu7c, aBFu0i_BFu0ll_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu7i, aBFu0i_BFu0ll_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu7ll, aBFu0i_BFu0ll_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu7s, aBFu0i_BFu0ll_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu8c, aBFu0i_BFu0ll_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu8i, aBFu0i_BFu0ll_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu8ll, aBFu0i_BFu0ll_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu8s, aBFu0i_BFu0ll_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu9i, aBFu0i_BFu0ll_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu9ll, aBFu0i_BFu0ll_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu0ll_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu0ll_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu0ll_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_BFu9s, aBFu0i_BFu0ll_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu0ll_C()
{
  {
    init_simple_test("aBFu0i_BFu0ll_C");
    static STRUCT_IF_C aBFu0i_BFu0ll_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_C)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_C, aBFu0i_BFu0ll_C)
//============================================================================



static void Test_aBFu0i_BFu0ll_D()
{
  {
    init_simple_test("aBFu0i_BFu0ll_D");
    static STRUCT_IF_C aBFu0i_BFu0ll_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_D)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_D, aBFu0i_BFu0ll_D)
//============================================================================



static void Test_aBFu0i_BFu0ll_F()
{
  {
    init_simple_test("aBFu0i_BFu0ll_F");
    static STRUCT_IF_C aBFu0i_BFu0ll_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_F)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_F, aBFu0i_BFu0ll_F)
//============================================================================



static void Test_aBFu0i_BFu0ll_I()
{
  {
    init_simple_test("aBFu0i_BFu0ll_I");
    static STRUCT_IF_C aBFu0i_BFu0ll_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_I)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_I, aBFu0i_BFu0ll_I)
//============================================================================



static void Test_aBFu0i_BFu0ll_Ip()
{
  {
    init_simple_test("aBFu0i_BFu0ll_Ip");
    static STRUCT_IF_C aBFu0i_BFu0ll_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_Ip, aBFu0i_BFu0ll_Ip)
//============================================================================



static void Test_aBFu0i_BFu0ll_L()
{
  {
    init_simple_test("aBFu0i_BFu0ll_L");
    static STRUCT_IF_C aBFu0i_BFu0ll_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_L)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_L, aBFu0i_BFu0ll_L)
//============================================================================



static void Test_aBFu0i_BFu0ll_S()
{
  {
    init_simple_test("aBFu0i_BFu0ll_S");
    static STRUCT_IF_C aBFu0i_BFu0ll_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_S)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_S, aBFu0i_BFu0ll_S)
//============================================================================



static void Test_aBFu0i_BFu0ll_Uc()
{
  {
    init_simple_test("aBFu0i_BFu0ll_Uc");
    static STRUCT_IF_C aBFu0i_BFu0ll_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_Uc, aBFu0i_BFu0ll_Uc)
//============================================================================



static void Test_aBFu0i_BFu0ll_Ui()
{
  {
    init_simple_test("aBFu0i_BFu0ll_Ui");
    static STRUCT_IF_C aBFu0i_BFu0ll_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_Ui, aBFu0i_BFu0ll_Ui)
//============================================================================



static void Test_aBFu0i_BFu0ll_Ul()
{
  {
    init_simple_test("aBFu0i_BFu0ll_Ul");
    static STRUCT_IF_C aBFu0i_BFu0ll_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_Ul, aBFu0i_BFu0ll_Ul)
//============================================================================



static void Test_aBFu0i_BFu0ll_Us()
{
  {
    init_simple_test("aBFu0i_BFu0ll_Us");
    static STRUCT_IF_C aBFu0i_BFu0ll_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_Us)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_Us, aBFu0i_BFu0ll_Us)
//============================================================================



static void Test_aBFu0i_BFu0ll_Vp()
{
  {
    init_simple_test("aBFu0i_BFu0ll_Vp");
    static STRUCT_IF_C aBFu0i_BFu0ll_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0ll_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0ll_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0ll_Vp, aBFu0i_BFu0ll_Vp)
//============================================================================



static void Test_aBFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s, aBFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c, aBFu0i_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFs0c, aBFu0i_BFu0s_BFs0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFs0i, aBFu0i_BFu0s_BFs0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFs0ll, aBFu0i_BFu0s_BFs0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFs0s, aBFu0i_BFu0s_BFs0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFu0c, aBFu0i_BFu0s_BFs0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFu0i, aBFu0i_BFu0s_BFs0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFu0ll, aBFu0i_BFu0s_BFs0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0c_BFu0s, aBFu0i_BFu0s_BFs0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i, aBFu0i_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFs0c, aBFu0i_BFu0s_BFs0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFs0i, aBFu0i_BFu0s_BFs0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFs0ll, aBFu0i_BFu0s_BFs0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFs0s, aBFu0i_BFu0s_BFs0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFu0c, aBFu0i_BFu0s_BFs0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFu0i, aBFu0i_BFu0s_BFs0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFu0ll, aBFu0i_BFu0s_BFs0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0i_BFu0s, aBFu0i_BFu0s_BFs0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll, aBFu0i_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFs0c, aBFu0i_BFu0s_BFs0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFs0i, aBFu0i_BFu0s_BFs0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFs0ll, aBFu0i_BFu0s_BFs0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFs0s, aBFu0i_BFu0s_BFs0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFu0c, aBFu0i_BFu0s_BFs0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFu0i, aBFu0i_BFu0s_BFs0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFu0ll, aBFu0i_BFu0s_BFs0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0ll_BFu0s, aBFu0i_BFu0s_BFs0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s, aBFu0i_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFs0c, aBFu0i_BFu0s_BFs0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFs0i, aBFu0i_BFu0s_BFs0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFs0ll, aBFu0i_BFu0s_BFs0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFs0s, aBFu0i_BFu0s_BFs0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFu0c, aBFu0i_BFu0s_BFs0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFu0i, aBFu0i_BFu0s_BFs0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFu0ll, aBFu0i_BFu0s_BFs0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFs0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFs0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFs0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFs0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFs0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFs0s_BFu0s, aBFu0i_BFu0s_BFs0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c, aBFu0i_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFs0c, aBFu0i_BFu0s_BFu0c_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFs0i, aBFu0i_BFu0s_BFu0c_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFs0ll, aBFu0i_BFu0s_BFu0c_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFs0s, aBFu0i_BFu0s_BFu0c_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFu0c, aBFu0i_BFu0s_BFu0c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFu0i, aBFu0i_BFu0s_BFu0c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFu0ll, aBFu0i_BFu0s_BFu0c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0c_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0c_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0c_BFu0s, aBFu0i_BFu0s_BFu0c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i, aBFu0i_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFs0c, aBFu0i_BFu0s_BFu0i_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFs0i, aBFu0i_BFu0s_BFu0i_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFs0ll, aBFu0i_BFu0s_BFu0i_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFs0s, aBFu0i_BFu0s_BFu0i_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFu0c, aBFu0i_BFu0s_BFu0i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFu0i, aBFu0i_BFu0s_BFu0i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFu0ll, aBFu0i_BFu0s_BFu0i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0i_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0i_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0i_BFu0s, aBFu0i_BFu0s_BFu0i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll, aBFu0i_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFs0c, aBFu0i_BFu0s_BFu0ll_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFs0i, aBFu0i_BFu0s_BFu0ll_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFs0ll, aBFu0i_BFu0s_BFu0ll_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFs0s, aBFu0i_BFu0s_BFu0ll_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFu0c, aBFu0i_BFu0s_BFu0ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFu0i, aBFu0i_BFu0s_BFu0ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFu0ll, aBFu0i_BFu0s_BFu0ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0ll_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0ll_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0ll_BFu0s, aBFu0i_BFu0s_BFu0ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s, aBFu0i_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFs0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFs0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFs0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFs0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFs0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFs0c, aBFu0i_BFu0s_BFu0s_BFs0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFs0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFs0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFs0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFs0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFs0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFs0i, aBFu0i_BFu0s_BFu0s_BFs0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFs0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFs0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFs0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFs0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFs0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFs0ll, aBFu0i_BFu0s_BFu0s_BFs0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFs0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFs0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFs0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFs0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFs0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFs0s, aBFu0i_BFu0s_BFu0s_BFs0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFu0c lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFu0c)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFu0c, aBFu0i_BFu0s_BFu0s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFu0i lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFu0i)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFu0i, aBFu0i_BFu0s_BFu0s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFu0ll lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFu0ll)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFu0ll, aBFu0i_BFu0s_BFu0s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu0s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu0s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu0s_BFu0s lv;
    check2(sizeof(lv), 0, "sizeof(aBFu0i_BFu0s_BFu0s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu0s_BFu0s)");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu0s_BFu0s, aBFu0i_BFu0s_BFu0s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu15i, aBFu0i_BFu0s_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu15ll, aBFu0i_BFu0s_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu0s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu0s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu15s, aBFu0i_BFu0s_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu16i, aBFu0i_BFu0s_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu16ll, aBFu0i_BFu0s_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu0s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu0s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu16s, aBFu0i_BFu0s_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu17i, aBFu0i_BFu0s_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu0s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu0s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu0s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu17ll, aBFu0i_BFu0s_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu1c, aBFu0i_BFu0s_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu1i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu1i, aBFu0i_BFu0s_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu1ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu1ll, aBFu0i_BFu0s_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu1s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu0s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu1s, aBFu0i_BFu0s_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu31i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu31i, aBFu0i_BFu0s_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu31ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 31, 1, "aBFu0i_BFu0s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu0s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu31ll, aBFu0i_BFu0s_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu32i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu32i, aBFu0i_BFu0s_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu32ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 32, 1, "aBFu0i_BFu0s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu0s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu32ll, aBFu0i_BFu0s_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu33");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu33 lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu0s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 33, 1, "aBFu0i_BFu0s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu0s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu33, aBFu0i_BFu0s_BFu33)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu7c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu7c, aBFu0i_BFu0s_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu7i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu7i, aBFu0i_BFu0s_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu7ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu7ll, aBFu0i_BFu0s_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu7s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 7, 1, "aBFu0i_BFu0s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu0s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu7s, aBFu0i_BFu0s_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu8c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu8c, aBFu0i_BFu0s_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu8i lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu8i, aBFu0i_BFu0s_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu8ll lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu8ll, aBFu0i_BFu0s_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu8s lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 8, 1, "aBFu0i_BFu0s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu0s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu8s, aBFu0i_BFu0s_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu9i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu9i, aBFu0i_BFu0s_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu9ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu9ll, aBFu0i_BFu0s_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu0s_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu0s_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu0s_BFu9s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 9, 1, "aBFu0i_BFu0s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu0s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_BFu9s, aBFu0i_BFu0s_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu0s_C()
{
  {
    init_simple_test("aBFu0i_BFu0s_C");
    static STRUCT_IF_C aBFu0i_BFu0s_C lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_C)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_C.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_C, aBFu0i_BFu0s_C)
//============================================================================



static void Test_aBFu0i_BFu0s_D()
{
  {
    init_simple_test("aBFu0i_BFu0s_D");
    static STRUCT_IF_C aBFu0i_BFu0s_D lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_D)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_D.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_D, aBFu0i_BFu0s_D)
//============================================================================



static void Test_aBFu0i_BFu0s_F()
{
  {
    init_simple_test("aBFu0i_BFu0s_F");
    static STRUCT_IF_C aBFu0i_BFu0s_F lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_F)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_F.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_F, aBFu0i_BFu0s_F)
//============================================================================



static void Test_aBFu0i_BFu0s_I()
{
  {
    init_simple_test("aBFu0i_BFu0s_I");
    static STRUCT_IF_C aBFu0i_BFu0s_I lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_I)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_I.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_I, aBFu0i_BFu0s_I)
//============================================================================



static void Test_aBFu0i_BFu0s_Ip()
{
  {
    init_simple_test("aBFu0i_BFu0s_Ip");
    static STRUCT_IF_C aBFu0i_BFu0s_Ip lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_Ip)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_Ip.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_Ip, aBFu0i_BFu0s_Ip)
//============================================================================



static void Test_aBFu0i_BFu0s_L()
{
  {
    init_simple_test("aBFu0i_BFu0s_L");
    static STRUCT_IF_C aBFu0i_BFu0s_L lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_L)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_L.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_L, aBFu0i_BFu0s_L)
//============================================================================



static void Test_aBFu0i_BFu0s_S()
{
  {
    init_simple_test("aBFu0i_BFu0s_S");
    static STRUCT_IF_C aBFu0i_BFu0s_S lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_S)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_S.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_S, aBFu0i_BFu0s_S)
//============================================================================



static void Test_aBFu0i_BFu0s_Uc()
{
  {
    init_simple_test("aBFu0i_BFu0s_Uc");
    static STRUCT_IF_C aBFu0i_BFu0s_Uc lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu0s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_Uc)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_Uc.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_Uc, aBFu0i_BFu0s_Uc)
//============================================================================



static void Test_aBFu0i_BFu0s_Ui()
{
  {
    init_simple_test("aBFu0i_BFu0s_Ui");
    static STRUCT_IF_C aBFu0i_BFu0s_Ui lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu0s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_Ui)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_Ui.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_Ui, aBFu0i_BFu0s_Ui)
//============================================================================



static void Test_aBFu0i_BFu0s_Ul()
{
  {
    init_simple_test("aBFu0i_BFu0s_Ul");
    static STRUCT_IF_C aBFu0i_BFu0s_Ul lv;
    check2(sizeof(lv), 8, "sizeof(aBFu0i_BFu0s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_Ul)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_Ul.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_Ul, aBFu0i_BFu0s_Ul)
//============================================================================



static void Test_aBFu0i_BFu0s_Us()
{
  {
    init_simple_test("aBFu0i_BFu0s_Us");
    static STRUCT_IF_C aBFu0i_BFu0s_Us lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu0s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_Us)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_Us.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_Us, aBFu0i_BFu0s_Us)
//============================================================================



static void Test_aBFu0i_BFu0s_Vp()
{
  {
    init_simple_test("aBFu0i_BFu0s_Vp");
    static STRUCT_IF_C aBFu0i_BFu0s_Vp lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu0s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu0s_Vp)");
    check_field_offset(lv, v1, 0, "aBFu0i_BFu0s_Vp.v1");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu0s_Vp, aBFu0i_BFu0s_Vp)
//============================================================================



static void Test_aBFu0i_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i, aBFu0i_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu0c, aBFu0i_BFu15i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu15i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu0i, aBFu0i_BFu15i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu15i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu0ll, aBFu0i_BFu15i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu0s, aBFu0i_BFu15i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15i_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu15i, aBFu0i_BFu15i_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15i_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu15ll, aBFu0i_BFu15i_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15i_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu15s, aBFu0i_BFu15i_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15i_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu16i, aBFu0i_BFu15i_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15i_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu16ll, aBFu0i_BFu15i_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15i_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu16s, aBFu0i_BFu15i_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0i_BFu15i_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0i_BFu15i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu17i, aBFu0i_BFu15i_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0i_BFu15i_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0i_BFu15i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu17ll, aBFu0i_BFu15i_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu1c, aBFu0i_BFu15i_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu1i, aBFu0i_BFu15i_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu1ll, aBFu0i_BFu15i_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu1s, aBFu0i_BFu15i_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0i_BFu15i_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0i_BFu15i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu31i, aBFu0i_BFu15i_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0i_BFu15i_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0i_BFu15i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu31ll, aBFu0i_BFu15i_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0i_BFu15i_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0i_BFu15i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu32i, aBFu0i_BFu15i_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0i_BFu15i_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0i_BFu15i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu32ll, aBFu0i_BFu15i_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu33");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "aBFu0i_BFu15i_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "aBFu0i_BFu15i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu33, aBFu0i_BFu15i_BFu33)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15i_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu7c, aBFu0i_BFu15i_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15i_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu7i, aBFu0i_BFu15i_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15i_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu7ll, aBFu0i_BFu15i_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15i_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu7s, aBFu0i_BFu15i_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15i_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu8c, aBFu0i_BFu15i_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15i_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu8i, aBFu0i_BFu15i_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15i_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu8ll, aBFu0i_BFu15i_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15i_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu8s, aBFu0i_BFu15i_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15i_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu9i, aBFu0i_BFu15i_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15i_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu9ll, aBFu0i_BFu15i_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu15i_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu15i_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu15i_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15i_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_BFu9s, aBFu0i_BFu15i_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu15i_C()
{
  {
    init_simple_test("aBFu0i_BFu15i_C");
    static STRUCT_IF_C aBFu0i_BFu15i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_C");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_C, aBFu0i_BFu15i_C)
//============================================================================



static void Test_aBFu0i_BFu15i_D()
{
  {
    init_simple_test("aBFu0i_BFu15i_D");
    static STRUCT_IF_C aBFu0i_BFu15i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_D");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_D, aBFu0i_BFu15i_D)
//============================================================================



static void Test_aBFu0i_BFu15i_F()
{
  {
    init_simple_test("aBFu0i_BFu15i_F");
    static STRUCT_IF_C aBFu0i_BFu15i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_F");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_F, aBFu0i_BFu15i_F)
//============================================================================



static void Test_aBFu0i_BFu15i_I()
{
  {
    init_simple_test("aBFu0i_BFu15i_I");
    static STRUCT_IF_C aBFu0i_BFu15i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_I");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_I, aBFu0i_BFu15i_I)
//============================================================================



static void Test_aBFu0i_BFu15i_Ip()
{
  {
    init_simple_test("aBFu0i_BFu15i_Ip");
    static STRUCT_IF_C aBFu0i_BFu15i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu15i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_Ip");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_Ip, aBFu0i_BFu15i_Ip)
//============================================================================



static void Test_aBFu0i_BFu15i_L()
{
  {
    init_simple_test("aBFu0i_BFu15i_L");
    static STRUCT_IF_C aBFu0i_BFu15i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_L");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_L, aBFu0i_BFu15i_L)
//============================================================================



static void Test_aBFu0i_BFu15i_S()
{
  {
    init_simple_test("aBFu0i_BFu15i_S");
    static STRUCT_IF_C aBFu0i_BFu15i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_S");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_S, aBFu0i_BFu15i_S)
//============================================================================



static void Test_aBFu0i_BFu15i_Uc()
{
  {
    init_simple_test("aBFu0i_BFu15i_Uc");
    static STRUCT_IF_C aBFu0i_BFu15i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_Uc");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_Uc, aBFu0i_BFu15i_Uc)
//============================================================================



static void Test_aBFu0i_BFu15i_Ui()
{
  {
    init_simple_test("aBFu0i_BFu15i_Ui");
    static STRUCT_IF_C aBFu0i_BFu15i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_Ui");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_Ui, aBFu0i_BFu15i_Ui)
//============================================================================



static void Test_aBFu0i_BFu15i_Ul()
{
  {
    init_simple_test("aBFu0i_BFu15i_Ul");
    static STRUCT_IF_C aBFu0i_BFu15i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_Ul");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_Ul, aBFu0i_BFu15i_Ul)
//============================================================================



static void Test_aBFu0i_BFu15i_Us()
{
  {
    init_simple_test("aBFu0i_BFu15i_Us");
    static STRUCT_IF_C aBFu0i_BFu15i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_Us");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_Us, aBFu0i_BFu15i_Us)
//============================================================================



static void Test_aBFu0i_BFu15i_Vp()
{
  {
    init_simple_test("aBFu0i_BFu15i_Vp");
    static STRUCT_IF_C aBFu0i_BFu15i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu15i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15i_Vp");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15i_Vp, aBFu0i_BFu15i_Vp)
//============================================================================



static void Test_aBFu0i_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll, aBFu0i_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu0c, aBFu0i_BFu15ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu15ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu0i, aBFu0i_BFu15ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu15ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu0ll, aBFu0i_BFu15ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu0s, aBFu0i_BFu15ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15ll_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu15i, aBFu0i_BFu15ll_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15ll_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu15ll, aBFu0i_BFu15ll_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15ll_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu15s, aBFu0i_BFu15ll_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15ll_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu16i, aBFu0i_BFu15ll_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15ll_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu16ll, aBFu0i_BFu15ll_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15ll_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu16s, aBFu0i_BFu15ll_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0i_BFu15ll_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0i_BFu15ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu17i, aBFu0i_BFu15ll_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0i_BFu15ll_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0i_BFu15ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu17ll, aBFu0i_BFu15ll_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu1c, aBFu0i_BFu15ll_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu1i, aBFu0i_BFu15ll_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu1ll, aBFu0i_BFu15ll_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu1s, aBFu0i_BFu15ll_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0i_BFu15ll_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0i_BFu15ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu31i, aBFu0i_BFu15ll_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0i_BFu15ll_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0i_BFu15ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu31ll, aBFu0i_BFu15ll_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0i_BFu15ll_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0i_BFu15ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu32i, aBFu0i_BFu15ll_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0i_BFu15ll_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0i_BFu15ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu32ll, aBFu0i_BFu15ll_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu33");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "aBFu0i_BFu15ll_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "aBFu0i_BFu15ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu33, aBFu0i_BFu15ll_BFu33)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15ll_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu7c, aBFu0i_BFu15ll_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15ll_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu7i, aBFu0i_BFu15ll_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15ll_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu7ll, aBFu0i_BFu15ll_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15ll_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu7s, aBFu0i_BFu15ll_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15ll_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu8c, aBFu0i_BFu15ll_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15ll_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu8i, aBFu0i_BFu15ll_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15ll_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu8ll, aBFu0i_BFu15ll_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15ll_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu8s, aBFu0i_BFu15ll_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15ll_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu9i, aBFu0i_BFu15ll_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15ll_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu9ll, aBFu0i_BFu15ll_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu15ll_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu15ll_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu15ll_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15ll_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_BFu9s, aBFu0i_BFu15ll_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu15ll_C()
{
  {
    init_simple_test("aBFu0i_BFu15ll_C");
    static STRUCT_IF_C aBFu0i_BFu15ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_C");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_C, aBFu0i_BFu15ll_C)
//============================================================================



static void Test_aBFu0i_BFu15ll_D()
{
  {
    init_simple_test("aBFu0i_BFu15ll_D");
    static STRUCT_IF_C aBFu0i_BFu15ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_D");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_D, aBFu0i_BFu15ll_D)
//============================================================================



static void Test_aBFu0i_BFu15ll_F()
{
  {
    init_simple_test("aBFu0i_BFu15ll_F");
    static STRUCT_IF_C aBFu0i_BFu15ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_F");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_F, aBFu0i_BFu15ll_F)
//============================================================================



static void Test_aBFu0i_BFu15ll_I()
{
  {
    init_simple_test("aBFu0i_BFu15ll_I");
    static STRUCT_IF_C aBFu0i_BFu15ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_I");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_I, aBFu0i_BFu15ll_I)
//============================================================================



static void Test_aBFu0i_BFu15ll_Ip()
{
  {
    init_simple_test("aBFu0i_BFu15ll_Ip");
    static STRUCT_IF_C aBFu0i_BFu15ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu15ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_Ip");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_Ip, aBFu0i_BFu15ll_Ip)
//============================================================================



static void Test_aBFu0i_BFu15ll_L()
{
  {
    init_simple_test("aBFu0i_BFu15ll_L");
    static STRUCT_IF_C aBFu0i_BFu15ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_L");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_L, aBFu0i_BFu15ll_L)
//============================================================================



static void Test_aBFu0i_BFu15ll_S()
{
  {
    init_simple_test("aBFu0i_BFu15ll_S");
    static STRUCT_IF_C aBFu0i_BFu15ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_S");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_S, aBFu0i_BFu15ll_S)
//============================================================================



static void Test_aBFu0i_BFu15ll_Uc()
{
  {
    init_simple_test("aBFu0i_BFu15ll_Uc");
    static STRUCT_IF_C aBFu0i_BFu15ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_Uc");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_Uc, aBFu0i_BFu15ll_Uc)
//============================================================================



static void Test_aBFu0i_BFu15ll_Ui()
{
  {
    init_simple_test("aBFu0i_BFu15ll_Ui");
    static STRUCT_IF_C aBFu0i_BFu15ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_Ui");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_Ui, aBFu0i_BFu15ll_Ui)
//============================================================================



static void Test_aBFu0i_BFu15ll_Ul()
{
  {
    init_simple_test("aBFu0i_BFu15ll_Ul");
    static STRUCT_IF_C aBFu0i_BFu15ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_Ul");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_Ul, aBFu0i_BFu15ll_Ul)
//============================================================================



static void Test_aBFu0i_BFu15ll_Us()
{
  {
    init_simple_test("aBFu0i_BFu15ll_Us");
    static STRUCT_IF_C aBFu0i_BFu15ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_Us");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_Us, aBFu0i_BFu15ll_Us)
//============================================================================



static void Test_aBFu0i_BFu15ll_Vp()
{
  {
    init_simple_test("aBFu0i_BFu15ll_Vp");
    static STRUCT_IF_C aBFu0i_BFu15ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu15ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15ll_Vp");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15ll_Vp, aBFu0i_BFu15ll_Vp)
//============================================================================



static void Test_aBFu0i_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s, aBFu0i_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu0c, aBFu0i_BFu15s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu15s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu0i, aBFu0i_BFu15s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu15s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu0ll, aBFu0i_BFu15s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu0s, aBFu0i_BFu15s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15s_BFu15i");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu15i, aBFu0i_BFu15s_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15s_BFu15ll");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu15ll, aBFu0i_BFu15s_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, 1, "aBFu0i_BFu15s_BFu15s");
    set_bf_and_test(lv, v2, 1, 7, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu15s, aBFu0i_BFu15s_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15s_BFu16i");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu16i, aBFu0i_BFu15s_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15s_BFu16ll");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu16ll, aBFu0i_BFu15s_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, 1, "aBFu0i_BFu15s_BFu16s");
    set_bf_and_test(lv, v2, 1, 7, 16, hide_ull(1LL<<15), "aBFu0i_BFu15s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu16s, aBFu0i_BFu15s_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu17i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0i_BFu15s_BFu17i");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0i_BFu15s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu17i, aBFu0i_BFu15s_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu17ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, 1, "aBFu0i_BFu15s_BFu17ll");
    set_bf_and_test(lv, v2, 1, 7, 17, hide_ull(1LL<<16), "aBFu0i_BFu15s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu17ll, aBFu0i_BFu15s_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu1c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu1c");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu1c, aBFu0i_BFu15s_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu1i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu1i");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu1i, aBFu0i_BFu15s_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu1ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu1ll");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu1ll, aBFu0i_BFu15s_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu1s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu15s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu1s");
    set_bf_and_test(lv, v2, 1, 7, 1, 1, "aBFu0i_BFu15s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu1s, aBFu0i_BFu15s_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0i_BFu15s_BFu31i");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0i_BFu15s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu31i, aBFu0i_BFu15s_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, 1, "aBFu0i_BFu15s_BFu31ll");
    set_bf_and_test(lv, v2, 1, 7, 31, hide_ull(1LL<<30), "aBFu0i_BFu15s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu31ll, aBFu0i_BFu15s_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0i_BFu15s_BFu32i");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0i_BFu15s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu32i, aBFu0i_BFu15s_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, 1, "aBFu0i_BFu15s_BFu32ll");
    set_bf_and_test(lv, v2, 1, 7, 32, hide_ull(1LL<<31), "aBFu0i_BFu15s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu32ll, aBFu0i_BFu15s_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu33");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu33 lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, 1, "aBFu0i_BFu15s_BFu33");
    set_bf_and_test(lv, v2, 1, 7, 33, hide_ull(1LL<<32), "aBFu0i_BFu15s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu33, aBFu0i_BFu15s_BFu33)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15s_BFu7c");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu7c, aBFu0i_BFu15s_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15s_BFu7i");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu7i, aBFu0i_BFu15s_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15s_BFu7ll");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu7ll, aBFu0i_BFu15s_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, 1, "aBFu0i_BFu15s_BFu7s");
    set_bf_and_test(lv, v2, 1, 7, 7, hide_ull(1LL<<6), "aBFu0i_BFu15s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu7s, aBFu0i_BFu15s_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15s_BFu8c");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu8c, aBFu0i_BFu15s_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15s_BFu8i");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu8i, aBFu0i_BFu15s_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15s_BFu8ll");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu8ll, aBFu0i_BFu15s_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, 1, "aBFu0i_BFu15s_BFu8s");
    set_bf_and_test(lv, v2, 1, 7, 8, hide_ull(1LL<<7), "aBFu0i_BFu15s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu8s, aBFu0i_BFu15s_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu9i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15s_BFu9i");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu9i, aBFu0i_BFu15s_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu9ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15s_BFu9ll");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu9ll, aBFu0i_BFu15s_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu15s_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu15s_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu15s_BFu9s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, 1, "aBFu0i_BFu15s_BFu9s");
    set_bf_and_test(lv, v2, 1, 7, 9, hide_ull(1LL<<8), "aBFu0i_BFu15s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_BFu9s, aBFu0i_BFu15s_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu15s_C()
{
  {
    init_simple_test("aBFu0i_BFu15s_C");
    static STRUCT_IF_C aBFu0i_BFu15s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_C)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_C");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_C");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_C, aBFu0i_BFu15s_C)
//============================================================================



static void Test_aBFu0i_BFu15s_D()
{
  {
    init_simple_test("aBFu0i_BFu15s_D");
    static STRUCT_IF_C aBFu0i_BFu15s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_D)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_D");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_D");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_D, aBFu0i_BFu15s_D)
//============================================================================



static void Test_aBFu0i_BFu15s_F()
{
  {
    init_simple_test("aBFu0i_BFu15s_F");
    static STRUCT_IF_C aBFu0i_BFu15s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_F)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_F");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_F");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_F, aBFu0i_BFu15s_F)
//============================================================================



static void Test_aBFu0i_BFu15s_I()
{
  {
    init_simple_test("aBFu0i_BFu15s_I");
    static STRUCT_IF_C aBFu0i_BFu15s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_I)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_I");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_I");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_I, aBFu0i_BFu15s_I)
//============================================================================



static void Test_aBFu0i_BFu15s_Ip()
{
  {
    init_simple_test("aBFu0i_BFu15s_Ip");
    static STRUCT_IF_C aBFu0i_BFu15s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu15s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_Ip");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_Ip, aBFu0i_BFu15s_Ip)
//============================================================================



static void Test_aBFu0i_BFu15s_L()
{
  {
    init_simple_test("aBFu0i_BFu15s_L");
    static STRUCT_IF_C aBFu0i_BFu15s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_L)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_L");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_L");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_L, aBFu0i_BFu15s_L)
//============================================================================



static void Test_aBFu0i_BFu15s_S()
{
  {
    init_simple_test("aBFu0i_BFu15s_S");
    static STRUCT_IF_C aBFu0i_BFu15s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_S)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_S");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_S");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_S, aBFu0i_BFu15s_S)
//============================================================================



static void Test_aBFu0i_BFu15s_Uc()
{
  {
    init_simple_test("aBFu0i_BFu15s_Uc");
    static STRUCT_IF_C aBFu0i_BFu15s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu15s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_Uc");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_Uc, aBFu0i_BFu15s_Uc)
//============================================================================



static void Test_aBFu0i_BFu15s_Ui()
{
  {
    init_simple_test("aBFu0i_BFu15s_Ui");
    static STRUCT_IF_C aBFu0i_BFu15s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu15s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_Ui");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_Ui, aBFu0i_BFu15s_Ui)
//============================================================================



static void Test_aBFu0i_BFu15s_Ul()
{
  {
    init_simple_test("aBFu0i_BFu15s_Ul");
    static STRUCT_IF_C aBFu0i_BFu15s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu15s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_Ul");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_Ul, aBFu0i_BFu15s_Ul)
//============================================================================



static void Test_aBFu0i_BFu15s_Us()
{
  {
    init_simple_test("aBFu0i_BFu15s_Us");
    static STRUCT_IF_C aBFu0i_BFu15s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu15s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_Us");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_Us");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_Us, aBFu0i_BFu15s_Us)
//============================================================================



static void Test_aBFu0i_BFu15s_Vp()
{
  {
    init_simple_test("aBFu0i_BFu15s_Vp");
    static STRUCT_IF_C aBFu0i_BFu15s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu15s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu15s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 15, 1, "aBFu0i_BFu15s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu15s_Vp");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu15s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu15s_Vp, aBFu0i_BFu15s_Vp)
//============================================================================



static void Test_aBFu0i_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu16i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i, aBFu0i_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu0c, aBFu0i_BFu16i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu16i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu0i, aBFu0i_BFu16i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu16i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu0ll, aBFu0i_BFu16i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu0s, aBFu0i_BFu16i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16i_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu15i, aBFu0i_BFu16i_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu15ll, aBFu0i_BFu16i_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16i_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu15s, aBFu0i_BFu16i_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16i_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu16i, aBFu0i_BFu16i_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu16ll, aBFu0i_BFu16i_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16i_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu16s, aBFu0i_BFu16i_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu16i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0i_BFu16i_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu16i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu17i, aBFu0i_BFu16i_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu16i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0i_BFu16i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu16i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu17ll, aBFu0i_BFu16i_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu1c, aBFu0i_BFu16i_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu1i, aBFu0i_BFu16i_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu1ll, aBFu0i_BFu16i_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu1s, aBFu0i_BFu16i_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0i_BFu16i_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu16i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu31i, aBFu0i_BFu16i_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0i_BFu16i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu16i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu31ll, aBFu0i_BFu16i_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0i_BFu16i_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu16i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu32i, aBFu0i_BFu16i_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0i_BFu16i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu16i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu32ll, aBFu0i_BFu16i_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu33");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu16i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0i_BFu16i_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu16i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu33, aBFu0i_BFu16i_BFu33)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16i_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu7c, aBFu0i_BFu16i_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16i_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu7i, aBFu0i_BFu16i_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu7ll, aBFu0i_BFu16i_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16i_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu7s, aBFu0i_BFu16i_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16i_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu8c, aBFu0i_BFu16i_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16i_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu8i, aBFu0i_BFu16i_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu8ll, aBFu0i_BFu16i_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16i_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu8s, aBFu0i_BFu16i_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16i_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu9i, aBFu0i_BFu16i_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu9ll, aBFu0i_BFu16i_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu16i_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu16i_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu16i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16i_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_BFu9s, aBFu0i_BFu16i_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu16i_C()
{
  {
    init_simple_test("aBFu0i_BFu16i_C");
    static STRUCT_IF_C aBFu0i_BFu16i_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_C");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_C, aBFu0i_BFu16i_C)
//============================================================================



static void Test_aBFu0i_BFu16i_D()
{
  {
    init_simple_test("aBFu0i_BFu16i_D");
    static STRUCT_IF_C aBFu0i_BFu16i_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_D");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_D, aBFu0i_BFu16i_D)
//============================================================================



static void Test_aBFu0i_BFu16i_F()
{
  {
    init_simple_test("aBFu0i_BFu16i_F");
    static STRUCT_IF_C aBFu0i_BFu16i_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_F");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_F, aBFu0i_BFu16i_F)
//============================================================================



static void Test_aBFu0i_BFu16i_I()
{
  {
    init_simple_test("aBFu0i_BFu16i_I");
    static STRUCT_IF_C aBFu0i_BFu16i_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_I");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_I, aBFu0i_BFu16i_I)
//============================================================================



static void Test_aBFu0i_BFu16i_Ip()
{
  {
    init_simple_test("aBFu0i_BFu16i_Ip");
    static STRUCT_IF_C aBFu0i_BFu16i_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu16i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_Ip");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_Ip, aBFu0i_BFu16i_Ip)
//============================================================================



static void Test_aBFu0i_BFu16i_L()
{
  {
    init_simple_test("aBFu0i_BFu16i_L");
    static STRUCT_IF_C aBFu0i_BFu16i_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_L");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_L, aBFu0i_BFu16i_L)
//============================================================================



static void Test_aBFu0i_BFu16i_S()
{
  {
    init_simple_test("aBFu0i_BFu16i_S");
    static STRUCT_IF_C aBFu0i_BFu16i_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_S");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_S, aBFu0i_BFu16i_S)
//============================================================================



static void Test_aBFu0i_BFu16i_Uc()
{
  {
    init_simple_test("aBFu0i_BFu16i_Uc");
    static STRUCT_IF_C aBFu0i_BFu16i_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_Uc");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_Uc, aBFu0i_BFu16i_Uc)
//============================================================================



static void Test_aBFu0i_BFu16i_Ui()
{
  {
    init_simple_test("aBFu0i_BFu16i_Ui");
    static STRUCT_IF_C aBFu0i_BFu16i_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_Ui");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_Ui, aBFu0i_BFu16i_Ui)
//============================================================================



static void Test_aBFu0i_BFu16i_Ul()
{
  {
    init_simple_test("aBFu0i_BFu16i_Ul");
    static STRUCT_IF_C aBFu0i_BFu16i_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_Ul");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_Ul, aBFu0i_BFu16i_Ul)
//============================================================================



static void Test_aBFu0i_BFu16i_Us()
{
  {
    init_simple_test("aBFu0i_BFu16i_Us");
    static STRUCT_IF_C aBFu0i_BFu16i_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_Us");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_Us, aBFu0i_BFu16i_Us)
//============================================================================



static void Test_aBFu0i_BFu16i_Vp()
{
  {
    init_simple_test("aBFu0i_BFu16i_Vp");
    static STRUCT_IF_C aBFu0i_BFu16i_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu16i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16i_Vp");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16i_Vp, aBFu0i_BFu16i_Vp)
//============================================================================



static void Test_aBFu0i_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu16ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll, aBFu0i_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu0c, aBFu0i_BFu16ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu16ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu0i, aBFu0i_BFu16ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu16ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu0ll, aBFu0i_BFu16ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu0s, aBFu0i_BFu16ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu15i, aBFu0i_BFu16ll_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu15ll, aBFu0i_BFu16ll_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu15s, aBFu0i_BFu16ll_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu16i, aBFu0i_BFu16ll_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu16ll, aBFu0i_BFu16ll_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu16s, aBFu0i_BFu16ll_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu16ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0i_BFu16ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu16ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu17i, aBFu0i_BFu16ll_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu16ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0i_BFu16ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu16ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu17ll, aBFu0i_BFu16ll_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu1c, aBFu0i_BFu16ll_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu1i, aBFu0i_BFu16ll_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu1ll, aBFu0i_BFu16ll_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu1s, aBFu0i_BFu16ll_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0i_BFu16ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu16ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu31i, aBFu0i_BFu16ll_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0i_BFu16ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu16ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu31ll, aBFu0i_BFu16ll_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0i_BFu16ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu16ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu32i, aBFu0i_BFu16ll_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0i_BFu16ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu16ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu32ll, aBFu0i_BFu16ll_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu33");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu16ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0i_BFu16ll_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu16ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu33, aBFu0i_BFu16ll_BFu33)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu7c, aBFu0i_BFu16ll_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu7i, aBFu0i_BFu16ll_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu7ll, aBFu0i_BFu16ll_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu7s, aBFu0i_BFu16ll_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu8c, aBFu0i_BFu16ll_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu8i, aBFu0i_BFu16ll_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu8ll, aBFu0i_BFu16ll_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu8s, aBFu0i_BFu16ll_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu9i, aBFu0i_BFu16ll_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu9ll, aBFu0i_BFu16ll_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu16ll_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu16ll_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu16ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_BFu9s, aBFu0i_BFu16ll_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu16ll_C()
{
  {
    init_simple_test("aBFu0i_BFu16ll_C");
    static STRUCT_IF_C aBFu0i_BFu16ll_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_C");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_C, aBFu0i_BFu16ll_C)
//============================================================================



static void Test_aBFu0i_BFu16ll_D()
{
  {
    init_simple_test("aBFu0i_BFu16ll_D");
    static STRUCT_IF_C aBFu0i_BFu16ll_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_D");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_D, aBFu0i_BFu16ll_D)
//============================================================================



static void Test_aBFu0i_BFu16ll_F()
{
  {
    init_simple_test("aBFu0i_BFu16ll_F");
    static STRUCT_IF_C aBFu0i_BFu16ll_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_F");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_F, aBFu0i_BFu16ll_F)
//============================================================================



static void Test_aBFu0i_BFu16ll_I()
{
  {
    init_simple_test("aBFu0i_BFu16ll_I");
    static STRUCT_IF_C aBFu0i_BFu16ll_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_I");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_I, aBFu0i_BFu16ll_I)
//============================================================================



static void Test_aBFu0i_BFu16ll_Ip()
{
  {
    init_simple_test("aBFu0i_BFu16ll_Ip");
    static STRUCT_IF_C aBFu0i_BFu16ll_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu16ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_Ip");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_Ip, aBFu0i_BFu16ll_Ip)
//============================================================================



static void Test_aBFu0i_BFu16ll_L()
{
  {
    init_simple_test("aBFu0i_BFu16ll_L");
    static STRUCT_IF_C aBFu0i_BFu16ll_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_L");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_L, aBFu0i_BFu16ll_L)
//============================================================================



static void Test_aBFu0i_BFu16ll_S()
{
  {
    init_simple_test("aBFu0i_BFu16ll_S");
    static STRUCT_IF_C aBFu0i_BFu16ll_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_S");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_S, aBFu0i_BFu16ll_S)
//============================================================================



static void Test_aBFu0i_BFu16ll_Uc()
{
  {
    init_simple_test("aBFu0i_BFu16ll_Uc");
    static STRUCT_IF_C aBFu0i_BFu16ll_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_Uc");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_Uc, aBFu0i_BFu16ll_Uc)
//============================================================================



static void Test_aBFu0i_BFu16ll_Ui()
{
  {
    init_simple_test("aBFu0i_BFu16ll_Ui");
    static STRUCT_IF_C aBFu0i_BFu16ll_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_Ui");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_Ui, aBFu0i_BFu16ll_Ui)
//============================================================================



static void Test_aBFu0i_BFu16ll_Ul()
{
  {
    init_simple_test("aBFu0i_BFu16ll_Ul");
    static STRUCT_IF_C aBFu0i_BFu16ll_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_Ul");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_Ul, aBFu0i_BFu16ll_Ul)
//============================================================================



static void Test_aBFu0i_BFu16ll_Us()
{
  {
    init_simple_test("aBFu0i_BFu16ll_Us");
    static STRUCT_IF_C aBFu0i_BFu16ll_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_Us");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_Us, aBFu0i_BFu16ll_Us)
//============================================================================



static void Test_aBFu0i_BFu16ll_Vp()
{
  {
    init_simple_test("aBFu0i_BFu16ll_Vp");
    static STRUCT_IF_C aBFu0i_BFu16ll_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu16ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16ll_Vp");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16ll_Vp, aBFu0i_BFu16ll_Vp)
//============================================================================



static void Test_aBFu0i_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu16s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s, aBFu0i_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu0c lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16s_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu0c, aBFu0i_BFu16s_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu16s_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu0i, aBFu0i_BFu16s_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu16s_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu0ll, aBFu0i_BFu16s_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu0s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu16s_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu0s, aBFu0i_BFu16s_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16s_BFu15i");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16s_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu15i, aBFu0i_BFu16s_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16s_BFu15ll");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16s_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu15ll, aBFu0i_BFu16s_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, 1, "aBFu0i_BFu16s_BFu15s");
    set_bf_and_test(lv, v2, 2, 0, 15, hide_ull(1LL<<14), "aBFu0i_BFu16s_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu15s, aBFu0i_BFu16s_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu16i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16s_BFu16i");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu16i, aBFu0i_BFu16s_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu16ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16s_BFu16ll");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu16ll, aBFu0i_BFu16s_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu16s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, 1, "aBFu0i_BFu16s_BFu16s");
    set_bf_and_test(lv, v2, 2, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu16s, aBFu0i_BFu16s_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu16s_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0i_BFu16s_BFu17i");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu16s_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu17i, aBFu0i_BFu16s_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu16s_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, 1, "aBFu0i_BFu16s_BFu17ll");
    set_bf_and_test(lv, v2, 2, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu16s_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu17ll, aBFu0i_BFu16s_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu1c");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16s_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu1c, aBFu0i_BFu16s_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu1i");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16s_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu1i, aBFu0i_BFu16s_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu1ll");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16s_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu1ll, aBFu0i_BFu16s_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu1s");
    set_bf_and_test(lv, v2, 2, 0, 1, 1, "aBFu0i_BFu16s_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu1s, aBFu0i_BFu16s_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0i_BFu16s_BFu31i");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu16s_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu31i, aBFu0i_BFu16s_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, 1, "aBFu0i_BFu16s_BFu31ll");
    set_bf_and_test(lv, v2, 2, 0, 31, hide_ull(1LL<<30), "aBFu0i_BFu16s_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu31ll, aBFu0i_BFu16s_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu32i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0i_BFu16s_BFu32i");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu16s_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu32i, aBFu0i_BFu16s_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu32ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, 1, "aBFu0i_BFu16s_BFu32ll");
    set_bf_and_test(lv, v2, 2, 0, 32, hide_ull(1LL<<31), "aBFu0i_BFu16s_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu32ll, aBFu0i_BFu16s_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu33");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu16s_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, 1, "aBFu0i_BFu16s_BFu33");
    set_bf_and_test(lv, v2, 2, 0, 33, hide_ull(1LL<<32), "aBFu0i_BFu16s_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu33, aBFu0i_BFu16s_BFu33)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16s_BFu7c");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16s_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu7c, aBFu0i_BFu16s_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16s_BFu7i");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16s_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu7i, aBFu0i_BFu16s_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16s_BFu7ll");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16s_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu7ll, aBFu0i_BFu16s_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, 1, "aBFu0i_BFu16s_BFu7s");
    set_bf_and_test(lv, v2, 2, 0, 7, hide_ull(1LL<<6), "aBFu0i_BFu16s_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu7s, aBFu0i_BFu16s_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu8c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16s_BFu8c");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16s_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu8c, aBFu0i_BFu16s_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu8i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16s_BFu8i");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16s_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu8i, aBFu0i_BFu16s_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu8ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16s_BFu8ll");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16s_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu8ll, aBFu0i_BFu16s_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu8s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, 1, "aBFu0i_BFu16s_BFu8s");
    set_bf_and_test(lv, v2, 2, 0, 8, hide_ull(1LL<<7), "aBFu0i_BFu16s_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu8s, aBFu0i_BFu16s_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16s_BFu9i");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16s_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu9i, aBFu0i_BFu16s_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16s_BFu9ll");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16s_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu9ll, aBFu0i_BFu16s_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu16s_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu16s_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu16s_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, 1, "aBFu0i_BFu16s_BFu9s");
    set_bf_and_test(lv, v2, 2, 0, 9, hide_ull(1LL<<8), "aBFu0i_BFu16s_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_BFu9s, aBFu0i_BFu16s_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu16s_C()
{
  {
    init_simple_test("aBFu0i_BFu16s_C");
    static STRUCT_IF_C aBFu0i_BFu16s_C lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_C)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_C");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_C");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_C, aBFu0i_BFu16s_C)
//============================================================================



static void Test_aBFu0i_BFu16s_D()
{
  {
    init_simple_test("aBFu0i_BFu16s_D");
    static STRUCT_IF_C aBFu0i_BFu16s_D lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16s_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_D)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_D");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_D");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_D, aBFu0i_BFu16s_D)
//============================================================================



static void Test_aBFu0i_BFu16s_F()
{
  {
    init_simple_test("aBFu0i_BFu16s_F");
    static STRUCT_IF_C aBFu0i_BFu16s_F lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_F)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_F");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_F");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_F, aBFu0i_BFu16s_F)
//============================================================================



static void Test_aBFu0i_BFu16s_I()
{
  {
    init_simple_test("aBFu0i_BFu16s_I");
    static STRUCT_IF_C aBFu0i_BFu16s_I lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_I)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_I");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_I");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_I, aBFu0i_BFu16s_I)
//============================================================================



static void Test_aBFu0i_BFu16s_Ip()
{
  {
    init_simple_test("aBFu0i_BFu16s_Ip");
    static STRUCT_IF_C aBFu0i_BFu16s_Ip lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu16s_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_Ip");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_Ip");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_Ip, aBFu0i_BFu16s_Ip)
//============================================================================



static void Test_aBFu0i_BFu16s_L()
{
  {
    init_simple_test("aBFu0i_BFu16s_L");
    static STRUCT_IF_C aBFu0i_BFu16s_L lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16s_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_L)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_L");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_L");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_L, aBFu0i_BFu16s_L)
//============================================================================



static void Test_aBFu0i_BFu16s_S()
{
  {
    init_simple_test("aBFu0i_BFu16s_S");
    static STRUCT_IF_C aBFu0i_BFu16s_S lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_S)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_S");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_S");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_S, aBFu0i_BFu16s_S)
//============================================================================



static void Test_aBFu0i_BFu16s_Uc()
{
  {
    init_simple_test("aBFu0i_BFu16s_Uc");
    static STRUCT_IF_C aBFu0i_BFu16s_Uc lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu16s_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_Uc");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_Uc");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_Uc, aBFu0i_BFu16s_Uc)
//============================================================================



static void Test_aBFu0i_BFu16s_Ui()
{
  {
    init_simple_test("aBFu0i_BFu16s_Ui");
    static STRUCT_IF_C aBFu0i_BFu16s_Ui lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu16s_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_Ui");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_Ui");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_Ui, aBFu0i_BFu16s_Ui)
//============================================================================



static void Test_aBFu0i_BFu16s_Ul()
{
  {
    init_simple_test("aBFu0i_BFu16s_Ul");
    static STRUCT_IF_C aBFu0i_BFu16s_Ul lv;
    check2(sizeof(lv), 10, "sizeof(aBFu0i_BFu16s_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_Ul");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_Ul");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_Ul, aBFu0i_BFu16s_Ul)
//============================================================================



static void Test_aBFu0i_BFu16s_Us()
{
  {
    init_simple_test("aBFu0i_BFu16s_Us");
    static STRUCT_IF_C aBFu0i_BFu16s_Us lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu16s_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_Us)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_Us");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_Us");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_Us, aBFu0i_BFu16s_Us)
//============================================================================



static void Test_aBFu0i_BFu16s_Vp()
{
  {
    init_simple_test("aBFu0i_BFu16s_Vp");
    static STRUCT_IF_C aBFu0i_BFu16s_Vp lv;
    check2(sizeof(lv), ABISELECT(10,6), "sizeof(aBFu0i_BFu16s_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu16s_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 16, 1, "aBFu0i_BFu16s_Vp");
    set_bf_and_test(lv, v1, 0, 0, 16, hide_ull(1LL<<15), "aBFu0i_BFu16s_Vp");
    check_field_offset(lv, v2, 2, "aBFu0i_BFu16s_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu16s_Vp, aBFu0i_BFu16s_Vp)
//============================================================================



static void Test_aBFu0i_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i, aBFu0i_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu0c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu0c, aBFu0i_BFu17i_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu17i_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu0i, aBFu0i_BFu17i_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu17i_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu0ll, aBFu0i_BFu17i_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu0s lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu17i_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu0s, aBFu0i_BFu17i_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0i_BFu17i_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu17i_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu15i, aBFu0i_BFu17i_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0i_BFu17i_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu17i_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu15ll, aBFu0i_BFu17i_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0i_BFu17i_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu17i_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu15s, aBFu0i_BFu17i_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0i_BFu17i_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu17i_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu16i, aBFu0i_BFu17i_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0i_BFu17i_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu17i_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu16ll, aBFu0i_BFu17i_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0i_BFu17i_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu17i_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu16s, aBFu0i_BFu17i_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0i_BFu17i_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu17i, aBFu0i_BFu17i_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0i_BFu17i_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu17ll, aBFu0i_BFu17i_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu1c");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu1c, aBFu0i_BFu17i_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu1i");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17i_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu1i, aBFu0i_BFu17i_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu1ll");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17i_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu1ll, aBFu0i_BFu17i_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu1s");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17i_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu1s, aBFu0i_BFu17i_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu17i_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0i_BFu17i_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0i_BFu17i_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu31i, aBFu0i_BFu17i_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu17i_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0i_BFu17i_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0i_BFu17i_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu31ll, aBFu0i_BFu17i_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17i_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0i_BFu17i_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0i_BFu17i_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu32i, aBFu0i_BFu17i_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17i_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0i_BFu17i_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0i_BFu17i_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu32ll, aBFu0i_BFu17i_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu33");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17i_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, 1, "aBFu0i_BFu17i_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, hide_ull(1LL<<32), "aBFu0i_BFu17i_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu33, aBFu0i_BFu17i_BFu33)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17i_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17i_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu7c, aBFu0i_BFu17i_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17i_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17i_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu7i, aBFu0i_BFu17i_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17i_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17i_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu7ll, aBFu0i_BFu17i_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17i_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17i_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17i_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu7s, aBFu0i_BFu17i_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17i_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17i_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu8c, aBFu0i_BFu17i_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17i_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17i_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu8i, aBFu0i_BFu17i_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17i_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17i_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu8ll, aBFu0i_BFu17i_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17i_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17i_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu8s, aBFu0i_BFu17i_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0i_BFu17i_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0i_BFu17i_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu9i, aBFu0i_BFu17i_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0i_BFu17i_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0i_BFu17i_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu9ll, aBFu0i_BFu17i_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu17i_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu17i_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu17i_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0i_BFu17i_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0i_BFu17i_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_BFu9s, aBFu0i_BFu17i_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu17i_C()
{
  {
    init_simple_test("aBFu0i_BFu17i_C");
    static STRUCT_IF_C aBFu0i_BFu17i_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_C)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_C");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_C");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_C, aBFu0i_BFu17i_C)
//============================================================================



static void Test_aBFu0i_BFu17i_D()
{
  {
    init_simple_test("aBFu0i_BFu17i_D");
    static STRUCT_IF_C aBFu0i_BFu17i_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0i_BFu17i_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_D)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_D");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_D");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_D, aBFu0i_BFu17i_D)
//============================================================================



static void Test_aBFu0i_BFu17i_F()
{
  {
    init_simple_test("aBFu0i_BFu17i_F");
    static STRUCT_IF_C aBFu0i_BFu17i_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17i_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_F)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_F");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_F");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_F, aBFu0i_BFu17i_F)
//============================================================================



static void Test_aBFu0i_BFu17i_I()
{
  {
    init_simple_test("aBFu0i_BFu17i_I");
    static STRUCT_IF_C aBFu0i_BFu17i_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17i_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_I)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_I");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_I");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_I, aBFu0i_BFu17i_I)
//============================================================================



static void Test_aBFu0i_BFu17i_Ip()
{
  {
    init_simple_test("aBFu0i_BFu17i_Ip");
    static STRUCT_IF_C aBFu0i_BFu17i_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0i_BFu17i_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_Ip");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_Ip");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_Ip, aBFu0i_BFu17i_Ip)
//============================================================================



static void Test_aBFu0i_BFu17i_L()
{
  {
    init_simple_test("aBFu0i_BFu17i_L");
    static STRUCT_IF_C aBFu0i_BFu17i_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0i_BFu17i_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_L)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_L");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_L");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_L, aBFu0i_BFu17i_L)
//============================================================================



static void Test_aBFu0i_BFu17i_S()
{
  {
    init_simple_test("aBFu0i_BFu17i_S");
    static STRUCT_IF_C aBFu0i_BFu17i_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_S)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_S");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_S");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_S, aBFu0i_BFu17i_S)
//============================================================================



static void Test_aBFu0i_BFu17i_Uc()
{
  {
    init_simple_test("aBFu0i_BFu17i_Uc");
    static STRUCT_IF_C aBFu0i_BFu17i_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17i_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_Uc");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_Uc");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_Uc, aBFu0i_BFu17i_Uc)
//============================================================================



static void Test_aBFu0i_BFu17i_Ui()
{
  {
    init_simple_test("aBFu0i_BFu17i_Ui");
    static STRUCT_IF_C aBFu0i_BFu17i_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17i_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_Ui");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_Ui");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_Ui, aBFu0i_BFu17i_Ui)
//============================================================================



static void Test_aBFu0i_BFu17i_Ul()
{
  {
    init_simple_test("aBFu0i_BFu17i_Ul");
    static STRUCT_IF_C aBFu0i_BFu17i_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0i_BFu17i_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_Ul");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_Ul");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_Ul, aBFu0i_BFu17i_Ul)
//============================================================================



static void Test_aBFu0i_BFu17i_Us()
{
  {
    init_simple_test("aBFu0i_BFu17i_Us");
    static STRUCT_IF_C aBFu0i_BFu17i_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17i_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_Us)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_Us");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_Us");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_Us, aBFu0i_BFu17i_Us)
//============================================================================



static void Test_aBFu0i_BFu17i_Vp()
{
  {
    init_simple_test("aBFu0i_BFu17i_Vp");
    static STRUCT_IF_C aBFu0i_BFu17i_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0i_BFu17i_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17i_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17i_Vp");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17i_Vp");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17i_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17i_Vp, aBFu0i_BFu17i_Vp)
//============================================================================



static void Test_aBFu0i_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll, aBFu0i_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu0c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu0c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu0c, aBFu0i_BFu17ll_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu17ll_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu0i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu0i, aBFu0i_BFu17ll_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu17ll_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu0ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu0ll, aBFu0i_BFu17ll_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu0s lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu17ll_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu0s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu0s, aBFu0i_BFu17ll_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu15i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0i_BFu17ll_BFu15i");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu17ll_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu15i, aBFu0i_BFu17ll_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu15ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0i_BFu17ll_BFu15ll");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu17ll_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu15ll, aBFu0i_BFu17ll_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu15s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, 1, "aBFu0i_BFu17ll_BFu15s");
    set_bf_and_test(lv, v2, 2, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu17ll_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu15s, aBFu0i_BFu17ll_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu16i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0i_BFu17ll_BFu16i");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu17ll_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu16i, aBFu0i_BFu17ll_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu16ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0i_BFu17ll_BFu16ll");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu17ll_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu16ll, aBFu0i_BFu17ll_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu16s lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, 1, "aBFu0i_BFu17ll_BFu16s");
    set_bf_and_test(lv, v2, 2, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu17ll_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu16s, aBFu0i_BFu17ll_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu17i lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0i_BFu17ll_BFu17i");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu17i, aBFu0i_BFu17ll_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu17ll lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, 1, "aBFu0i_BFu17ll_BFu17ll");
    set_bf_and_test(lv, v2, 2, 1, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu17ll, aBFu0i_BFu17ll_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu1c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu1c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu1c");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17ll_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu1c, aBFu0i_BFu17ll_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu1i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu1i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu1i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu1i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu1i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu1i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu1i");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17ll_BFu1i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu1i, aBFu0i_BFu17ll_BFu1i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu1ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu1ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu1ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu1ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu1ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu1ll");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17ll_BFu1ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu1ll, aBFu0i_BFu17ll_BFu1ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu1s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu1s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu1s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu1s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu1s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu1s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu1s");
    set_bf_and_test(lv, v2, 2, 1, 1, 1, "aBFu0i_BFu17ll_BFu1s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu1s, aBFu0i_BFu17ll_BFu1s)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu31i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu31i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu31i lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu17ll_BFu31i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu31i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0i_BFu17ll_BFu31i");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0i_BFu17ll_BFu31i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu31i, aBFu0i_BFu17ll_BFu31i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu31ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu31ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu31ll lv;
    check2(sizeof(lv), 6, "sizeof(aBFu0i_BFu17ll_BFu31ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu31ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, 1, "aBFu0i_BFu17ll_BFu31ll");
    set_bf_and_test(lv, v2, 2, 1, 31, hide_ull(1LL<<30), "aBFu0i_BFu17ll_BFu31ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu31ll, aBFu0i_BFu17ll_BFu31ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu32i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu32i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu32i lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17ll_BFu32i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu32i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0i_BFu17ll_BFu32i");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0i_BFu17ll_BFu32i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu32i, aBFu0i_BFu17ll_BFu32i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu32ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu32ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu32ll lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17ll_BFu32ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu32ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, 1, "aBFu0i_BFu17ll_BFu32ll");
    set_bf_and_test(lv, v2, 2, 1, 32, hide_ull(1LL<<31), "aBFu0i_BFu17ll_BFu32ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu32ll, aBFu0i_BFu17ll_BFu32ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu33()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu33");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu33 lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17ll_BFu33)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu33)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu33");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, 1, "aBFu0i_BFu17ll_BFu33");
    set_bf_and_test(lv, v2, 2, 1, 33, hide_ull(1LL<<32), "aBFu0i_BFu17ll_BFu33");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu33, aBFu0i_BFu17ll_BFu33)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu7c()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu7c");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu7c lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu7c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu7c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17ll_BFu7c");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17ll_BFu7c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu7c, aBFu0i_BFu17ll_BFu7c)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu7i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu7i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu7i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu7i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu7i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17ll_BFu7i");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17ll_BFu7i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu7i, aBFu0i_BFu17ll_BFu7i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu7ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu7ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu7ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu7ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu7ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17ll_BFu7ll");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17ll_BFu7ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu7ll, aBFu0i_BFu17ll_BFu7ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu7s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu7s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu7s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu17ll_BFu7s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu7s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, 1, "aBFu0i_BFu17ll_BFu7s");
    set_bf_and_test(lv, v2, 2, 1, 7, hide_ull(1LL<<6), "aBFu0i_BFu17ll_BFu7s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu7s, aBFu0i_BFu17ll_BFu7s)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu8c()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu8c");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu8c lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu8c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu8c)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17ll_BFu8c");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17ll_BFu8c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu8c, aBFu0i_BFu17ll_BFu8c)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu8i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu8i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu8i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu8i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu8i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17ll_BFu8i");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17ll_BFu8i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu8i, aBFu0i_BFu17ll_BFu8i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu8ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu8ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu8ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu8ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu8ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17ll_BFu8ll");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17ll_BFu8ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu8ll, aBFu0i_BFu17ll_BFu8ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu8s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu8s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu8s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu8s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu8s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, 1, "aBFu0i_BFu17ll_BFu8s");
    set_bf_and_test(lv, v2, 2, 1, 8, hide_ull(1LL<<7), "aBFu0i_BFu17ll_BFu8s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu8s, aBFu0i_BFu17ll_BFu8s)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu9i()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu9i");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu9i lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu9i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu9i)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0i_BFu17ll_BFu9i");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0i_BFu17ll_BFu9i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu9i, aBFu0i_BFu17ll_BFu9i)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu9ll()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu9ll");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu9ll lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu9ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu9ll)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0i_BFu17ll_BFu9ll");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0i_BFu17ll_BFu9ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu9ll, aBFu0i_BFu17ll_BFu9ll)
//============================================================================



static void Test_aBFu0i_BFu17ll_BFu9s()
{
  {
    init_simple_test("aBFu0i_BFu17ll_BFu9s");
    static STRUCT_IF_C aBFu0i_BFu17ll_BFu9s lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_BFu9s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_BFu9s)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, 1, "aBFu0i_BFu17ll_BFu9s");
    set_bf_and_test(lv, v2, 2, 1, 9, hide_ull(1LL<<8), "aBFu0i_BFu17ll_BFu9s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_BFu9s, aBFu0i_BFu17ll_BFu9s)
//============================================================================



static void Test_aBFu0i_BFu17ll_C()
{
  {
    init_simple_test("aBFu0i_BFu17ll_C");
    static STRUCT_IF_C aBFu0i_BFu17ll_C lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_C)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_C)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_C");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_C");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_C.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_C, aBFu0i_BFu17ll_C)
//============================================================================



static void Test_aBFu0i_BFu17ll_D()
{
  {
    init_simple_test("aBFu0i_BFu17ll_D");
    static STRUCT_IF_C aBFu0i_BFu17ll_D lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0i_BFu17ll_D)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_D)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_D");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_D");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_D.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_D, aBFu0i_BFu17ll_D)
//============================================================================



static void Test_aBFu0i_BFu17ll_F()
{
  {
    init_simple_test("aBFu0i_BFu17ll_F");
    static STRUCT_IF_C aBFu0i_BFu17ll_F lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17ll_F)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_F)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_F");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_F");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_F.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_F, aBFu0i_BFu17ll_F)
//============================================================================



static void Test_aBFu0i_BFu17ll_I()
{
  {
    init_simple_test("aBFu0i_BFu17ll_I");
    static STRUCT_IF_C aBFu0i_BFu17ll_I lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17ll_I)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_I)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_I");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_I");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_I.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_I, aBFu0i_BFu17ll_I)
//============================================================================



static void Test_aBFu0i_BFu17ll_Ip()
{
  {
    init_simple_test("aBFu0i_BFu17ll_Ip");
    static STRUCT_IF_C aBFu0i_BFu17ll_Ip lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0i_BFu17ll_Ip)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_Ip)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_Ip");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_Ip");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_Ip.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_Ip, aBFu0i_BFu17ll_Ip)
//============================================================================



static void Test_aBFu0i_BFu17ll_L()
{
  {
    init_simple_test("aBFu0i_BFu17ll_L");
    static STRUCT_IF_C aBFu0i_BFu17ll_L lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0i_BFu17ll_L)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_L)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_L");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_L");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_L.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_L, aBFu0i_BFu17ll_L)
//============================================================================



static void Test_aBFu0i_BFu17ll_S()
{
  {
    init_simple_test("aBFu0i_BFu17ll_S");
    static STRUCT_IF_C aBFu0i_BFu17ll_S lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_S)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_S)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_S");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_S");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_S.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_S, aBFu0i_BFu17ll_S)
//============================================================================



static void Test_aBFu0i_BFu17ll_Uc()
{
  {
    init_simple_test("aBFu0i_BFu17ll_Uc");
    static STRUCT_IF_C aBFu0i_BFu17ll_Uc lv;
    check2(sizeof(lv), 4, "sizeof(aBFu0i_BFu17ll_Uc)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_Uc)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_Uc");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_Uc");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_Uc.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_Uc, aBFu0i_BFu17ll_Uc)
//============================================================================



static void Test_aBFu0i_BFu17ll_Ui()
{
  {
    init_simple_test("aBFu0i_BFu17ll_Ui");
    static STRUCT_IF_C aBFu0i_BFu17ll_Ui lv;
    check2(sizeof(lv), 7, "sizeof(aBFu0i_BFu17ll_Ui)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_Ui)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_Ui");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_Ui");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_Ui.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_Ui, aBFu0i_BFu17ll_Ui)
//============================================================================



static void Test_aBFu0i_BFu17ll_Ul()
{
  {
    init_simple_test("aBFu0i_BFu17ll_Ul");
    static STRUCT_IF_C aBFu0i_BFu17ll_Ul lv;
    check2(sizeof(lv), 11, "sizeof(aBFu0i_BFu17ll_Ul)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_Ul)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_Ul");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_Ul");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_Ul.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_Ul, aBFu0i_BFu17ll_Ul)
//============================================================================



static void Test_aBFu0i_BFu17ll_Us()
{
  {
    init_simple_test("aBFu0i_BFu17ll_Us");
    static STRUCT_IF_C aBFu0i_BFu17ll_Us lv;
    check2(sizeof(lv), 5, "sizeof(aBFu0i_BFu17ll_Us)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_Us)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_Us");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_Us");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_Us.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_Us, aBFu0i_BFu17ll_Us)
//============================================================================



static void Test_aBFu0i_BFu17ll_Vp()
{
  {
    init_simple_test("aBFu0i_BFu17ll_Vp");
    static STRUCT_IF_C aBFu0i_BFu17ll_Vp lv;
    check2(sizeof(lv), ABISELECT(11,7), "sizeof(aBFu0i_BFu17ll_Vp)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu17ll_Vp)");
    set_bf_and_test(lv, v1, 0, 0, 17, 1, "aBFu0i_BFu17ll_Vp");
    set_bf_and_test(lv, v1, 0, 0, 17, hide_ull(1LL<<16), "aBFu0i_BFu17ll_Vp");
    check_field_offset(lv, v2, 3, "aBFu0i_BFu17ll_Vp.v2");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu17ll_Vp, aBFu0i_BFu17ll_Vp)
//============================================================================



static void Test_aBFu0i_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c, aBFu0i_BFu1c)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu0c()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu0c");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu0c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu1c_BFu0c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu0c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu0c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu0c, aBFu0i_BFu1c_BFu0c)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu0i()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu0i");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu0i lv;
    check2(sizeof(lv), ABISELECT(4,4), "sizeof(aBFu0i_BFu1c_BFu0i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu0i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu0i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu0i, aBFu0i_BFu1c_BFu0i)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu0ll()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu0ll");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu0ll lv;
    check2(sizeof(lv), ABISELECT(8,4), "sizeof(aBFu0i_BFu1c_BFu0ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu0ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu0ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu0ll, aBFu0i_BFu1c_BFu0ll)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu0s()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu0s");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu0s lv;
    check2(sizeof(lv), ABISELECT(2,2), "sizeof(aBFu0i_BFu1c_BFu0s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu0s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu0s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu0s, aBFu0i_BFu1c_BFu0s)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu15i()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu15i");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu15i lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu1c_BFu15i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu15i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0i_BFu1c_BFu15i");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu1c_BFu15i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu15i, aBFu0i_BFu1c_BFu15i)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu15ll()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu15ll");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu15ll lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu1c_BFu15ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu15ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0i_BFu1c_BFu15ll");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu1c_BFu15ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu15ll, aBFu0i_BFu1c_BFu15ll)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu15s()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu15s");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu15s lv;
    check2(sizeof(lv), 2, "sizeof(aBFu0i_BFu1c_BFu15s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu15s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, 1, "aBFu0i_BFu1c_BFu15s");
    set_bf_and_test(lv, v2, 0, 1, 15, hide_ull(1LL<<14), "aBFu0i_BFu1c_BFu15s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu15s, aBFu0i_BFu1c_BFu15s)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu16i()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu16i");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu16i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu1c_BFu16i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu16i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0i_BFu1c_BFu16i");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu1c_BFu16i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu16i, aBFu0i_BFu1c_BFu16i)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu16ll()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu16ll");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu16ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu1c_BFu16ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu16ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0i_BFu1c_BFu16ll");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu1c_BFu16ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu16ll, aBFu0i_BFu1c_BFu16ll)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu16s()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu16s");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu16s lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu1c_BFu16s)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu16s)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, 1, "aBFu0i_BFu1c_BFu16s");
    set_bf_and_test(lv, v2, 0, 1, 16, hide_ull(1LL<<15), "aBFu0i_BFu1c_BFu16s");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu16s, aBFu0i_BFu1c_BFu16s)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu17i()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu17i");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu17i lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu1c_BFu17i)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu17i)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0i_BFu1c_BFu17i");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0i_BFu1c_BFu17i");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu17i, aBFu0i_BFu1c_BFu17i)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu17ll()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu17ll");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu17ll lv;
    check2(sizeof(lv), 3, "sizeof(aBFu0i_BFu1c_BFu17ll)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu17ll)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, 1, "aBFu0i_BFu1c_BFu17ll");
    set_bf_and_test(lv, v2, 0, 1, 17, hide_ull(1LL<<16), "aBFu0i_BFu1c_BFu17ll");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu17ll, aBFu0i_BFu1c_BFu17ll)
//============================================================================



static void Test_aBFu0i_BFu1c_BFu1c()
{
  {
    init_simple_test("aBFu0i_BFu1c_BFu1c");
    static STRUCT_IF_C aBFu0i_BFu1c_BFu1c lv;
    check2(sizeof(lv), 1, "sizeof(aBFu0i_BFu1c_BFu1c)");
    check2(__alignof__(lv), 1, "__alignof__(aBFu0i_BFu1c_BFu1c)");
    set_bf_and_test(lv, v1, 0, 0, 1, 1, "aBFu0i_BFu1c_BFu1c");
    set_bf_and_test(lv, v2, 0, 1, 1, 1, "aBFu0i_BFu1c_BFu1c");
  }
}
ARRANGE_TO_CALL_ME(Test_aBFu0i_BFu1c_BFu1c, aBFu0i_BFu1c_BFu1c)
//============================================================================

